@rcsb/rcsb-statistics 0.3.43 → 0.3.44-dev.aipcb.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/build/ai/chart-catalog.json +61 -0
- package/build/ai/chart-core.d.ts +39 -0
- package/build/ai/chart-core.js +1 -0
- package/build/index.html +1 -1
- package/build/static/css/221.2b6d5f7f.chunk.css +67 -0
- package/build/static/css/81.2b6d5f7f.chunk.css +67 -0
- package/build/static/css/main.894a09f3.css +10 -0
- package/build/static/js/182.85db5843.chunk.js +2 -0
- package/build/static/js/182.85db5843.chunk.js.LICENSE.txt +13 -0
- package/build/static/js/221.00ed9342.chunk.js +1 -0
- package/build/static/js/288.6c0f100f.chunk.js +2 -0
- package/build/static/js/{152.d0d96551.chunk.js.LICENSE.txt → 288.6c0f100f.chunk.js.LICENSE.txt} +0 -14
- package/build/static/js/417.a91bf47f.chunk.js +1 -0
- package/build/static/js/463.93a9a793.chunk.js +1 -0
- package/build/static/js/503.aa3a1e3b.chunk.js +1 -0
- package/build/static/js/646.d06a86d8.chunk.js +1 -0
- package/build/static/js/690.c5f42ab2.chunk.js +1 -0
- package/build/static/js/732.59dd3430.chunk.js +1 -0
- package/build/static/js/81.264174de.chunk.js +1 -0
- package/build/static/js/main.6170e3a8.js +2 -0
- package/package.json +2 -1
- package/build/static/css/main.a8ce960b.css +0 -8
- package/build/static/js/10.d9d49a66.chunk.js +0 -1
- package/build/static/js/109.2ff3158c.chunk.js +0 -1
- package/build/static/js/152.d0d96551.chunk.js +0 -2
- package/build/static/js/317.c95bf735.chunk.js +0 -1
- package/build/static/js/47.96ede111.chunk.js +0 -1
- package/build/static/js/613.8638dc20.chunk.js +0 -1
- package/build/static/js/630.bc43e10d.chunk.js +0 -1
- package/build/static/js/main.75a73ba9.js +0 -2
- /package/build/static/js/{main.75a73ba9.js.LICENSE.txt → main.6170e3a8.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_rcsb_rcsb_statistics=self.webpackChunk_rcsb_rcsb_statistics||[]).push([[417],{5417(e,t,n){n.r(t),n.d(t,{default:()=>_e});var l=n(9711),r=n(6876),a=n(8804),o=n(6619),i=n(2329),c=n(9806),s=n(5411),u=n(4654),d=n(2164),p=n(5579),m=n(728),b=n(5818),v=n(9782);const f=e=>{let t=e.size,n=void 0===t?24:t,r=e.color,a=void 0===r?"#bbb":r,o=e.disabled,i=void 0!==o&&o;return l.createElement("svg",{width:n,height:n,viewBox:"0 0 528.74 522.05",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{opacity:i?.5:1,cursor:i?"not-allowed":"pointer",pointerEvents:i?"none":"auto"}},l.createElement("path",{fill:a,d:"M274.5,5.22C189.25-13.05,114.92,14.41,111.53,123.11l-41.03,1.16-8.09,61.26h38.14c-6.59,22.84-28.2,247-44.49,258.9-9.25,8.09-22.54,10.98-47.39,5.78l-8.67,63.57c62.01,26.28,139.42-12.34,149.1-82.64,7.95-49.39,28.89-195.23,36.41-246.76l52.01.58,10.98-60.68h-52.59l4.44-30.57c11.36-29.11,36.03-30.32,62.02-23.75l12.14-64.72Z"}),l.createElement("path",{fill:a,d:"M304.9,217.1l-8.49-23.98c-90.49,30-137.29,262.05-41.47,306.8l10.99-23.48c-27.73-20.47-27.77-70.59-24.98-103.93,1.51-52.85,20.66-123.28,63.96-155.4Z"}),l.createElement("polygon",{fill:a,points:"357.37 270.57 306.4 270.57 334.38 344.52 278.42 432.47 331.88 432.97 363.86 385.5 379.35 432.47 428.82 432.47 398.84 353.02 454.3 270.57 397.84 271.07 372.36 312.04 357.37 270.57"}),l.createElement("path",{fill:a,d:"M464.93,214.67l14.66-20.8c79.02,53.33,61.38,289.4-42.97,306.6l-4.24-25.58c32.23-12.22,45.81-60.47,52.14-93.32,12.83-51.29,13.42-124.28-19.59-166.9Z"}))};var g,h=n(2699),y=n(9281),x=n(9970),w=n(4855),E=n(4233),j=n(1980);function k(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,l)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?k(Object(n),!0).forEach(function(t){C(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function C(e,t,n){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const A=n(376).Ay.div(g||(S=["\n .gridjs-pagination {\n display: flex;\n justify-content: space-between;\n padding: 10px;\n background-color: #f9fafb;\n border: 1px solid #ccc;\n border-radius: 0 0 8px 8px;\n }\n\n .gridjs-summary {\n font-size: 14px;\n color: #555;\n margin-top: 5px;\n }\n\n .gridjs-pages button {\n margin: 0 5px;\n padding: 5px 10px;\n border-radius: 5px;\n background-color: #fff;\n border: 1px solid #ccc;\n color: #333;\n cursor: pointer;\n transition: background-color 0.3s, color 0.3s;\n }\n\n .gridjs-pages button:hover {\n background-color: #e0e0e0;\n color: #000;\n }\n\n .gridjs-pages button:disabled {\n color: #aaa;\n background-color: #f5f5f5;\n cursor: not-allowed;\n }\n\n .gridjs-pages button.gridjs-currentPage {\n background-color: #d0d0d0;\n font-weight: bold;\n border-color: #aaa;\n }\n\n .gridjs-wrapper {\n width: 100%;\n border-radius: 8px;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n margin-bottom: 20px;\n border: 1px solid #e5e7eb;\n margin-top: 20px;\n }\n\n td.gridjs-td {\n padding: 12px 16px;\n font-size: 13px;\n color: #444;\n text-align: right;\n border: 1px solid #e5e7eb;\n }\n\n th.gridjs-th {\n position: relative;\n padding: 12px 16px;\n background-color: #f7f7f7;\n color: #333;\n font-weight: bold;\n text-align: right;\n border: 1px solid #e5e7eb;\n cursor: pointer;\n white-space: nowrap;\n }\n\n th.gridjs-th.gridjs-th-sort .gridjs-th-content {\n display: inline-block;\n float: none;\n width: auto;\n max-width: calc(100% - 24px);\n vertical-align: middle;\n }\n\n .gridjs-th .gridjs-sort {\n display: inline-flex;\n float: none;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-left: 8px;\n padding: 0;\n border: 0;\n background: transparent;\n color: #888;\n font-size: 0;\n line-height: 1;\n vertical-align: middle;\n }\n\n .gridjs-th .gridjs-sort::after {\n font-size: 12px;\n line-height: 1;\n color: currentColor;\n }\n\n .gridjs-th .gridjs-sort.gridjs-sort-neutral {\n display: none;\n }\n\n .gridjs-th .gridjs-sort.gridjs-sort-asc::after {\n content: '▲';\n }\n\n .gridjs-th .gridjs-sort.gridjs-sort-desc::after {\n content: '▼';\n }\n\n .gridjs-th .gridjs-sort:hover,\n .gridjs-th .gridjs-sort:focus-visible {\n color: #333;\n }\n\n input.gridjs-input {\n outline: none;\n background-color: #fff;\n border: 1px solid #d2d6dc;\n border-radius: 5px;\n padding: 8px 12px;\n font-size: 14px;\n margin-bottom: 10px;\n }\n\n input.gridjs-input:focus {\n border-color: #9bc2f7;\n box-shadow: 0 0 0 3px rgba(149, 189, 243, 0.5);\n }\n"],P||(P=S.slice(0)),g=Object.freeze(Object.defineProperties(S,{raw:{value:Object.freeze(P)}}))));var S,P;const D=e=>{let t=e.data,n=e.title;const r=l.useRef(null),a=t.length>0?Object.keys(t[0]):[],o=a.findIndex(e=>"year"===e.toLowerCase()),i="".concat(null!=n?n:"","|").concat(a.join("|"));if(l.useLayoutEffect(()=>{var e,t;if(-1===o)return;const n=null===(e=r.current)||void 0===e||null===(t=e.getInstance)||void 0===t?void 0:t.call(e);n&&n.config.store.dispatch(e=>O(O({},e),{},{sort:{columns:[{index:o,direction:-1}]}}))},[i,o]),0===t.length)return l.createElement("p",null,"No data available.");const c=a.map(e=>({name:e,sort:"year"===e.toLowerCase()?{direction:-1}:{}})),s=t.map(e=>a.map(t=>e[t]));return-1!==o&&s.sort((e,t)=>Number(t[o])-Number(e[o])),l.createElement(l.Fragment,null,n&&l.createElement(E.ne,null,n),l.createElement(A,null,l.createElement(j.x,{ref:r,columns:c,data:s,search:!1,pagination:{limit:10},sort:!0,style:{table:{border:"1px solid #ccc","border-radius":"8px",width:"100%","background-color":"#fff",color:"#000","font-family":"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif","font-size":"14px","text-align":"left"},th:{"background-color":"#f5f5f5",color:"#333","border-bottom":"2px solid #ccc",padding:"12px","font-weight":"bold","text-align":"right"},td:{padding:"12px","border-bottom":"1px solid #eee",color:"#555","font-size":"13px","text-align":"right"}}})))};var T=n(83);const q=b.v$b,N=b.YYR,z=b.qvi,_=T.CkS,I=e=>{let t=e.chartType,n=e.handleChartTypeChange,r=e.isDistPlot;const a=e=>{n(e)};return l.createElement(E.RZ,null,l.createElement(E.C,null,l.createElement(E.vE,null,(()=>{switch(t){case"bar":default:return l.createElement(q,{size:15});case"line":return l.createElement(N,{size:15});case"pie":return l.createElement(z,{size:15})}})()),l.createElement("span",{className:"triangle"})),l.createElement(E.rI,null,l.createElement(E.tJ,{onClick:()=>a("bar")},l.createElement(E.vE,null,l.createElement(q,{size:15})),l.createElement(E.hf,null,"Bar Chart")," ","bar"===t&&l.createElement(_,null)),!r&&l.createElement(E.tJ,{onClick:()=>a("line")},l.createElement(E.vE,null,l.createElement(N,{size:15})),l.createElement(E.hf,null,"Line Chart")," ","line"===t&&l.createElement(_,null)),r&&l.createElement(E.tJ,{onClick:()=>a("pie")},l.createElement(E.vE,null,l.createElement(z,{size:15})),l.createElement(E.hf,null,"Pie Chart")," ","pie"===t&&l.createElement(_,null))))},F=T.CkS,R=e=>{let t=e.scaleType,n=e.handleScaleTypeChange,r=(e.isDistPlot,e.disabled);const a=e=>{n(e)};return l.createElement(E.tf,{disabled:r},l.createElement(E.C,null,l.createElement(E.vE,null,l.createElement(f,{size:15,color:"#606060"})),l.createElement("span",{className:"triangle"})),l.createElement(E.rI,null,l.createElement(E.tJ,{onClick:()=>a("logarithmic")},l.createElement(E.hf,null,"Logarithmic")," ","logarithmic"===t&&l.createElement(F,null)),l.createElement(E.tJ,{onClick:()=>a("linear")},l.createElement(E.hf,null,"Linear")," ","linear"===t&&l.createElement(F,null))))};var L,M,V,U,K=n(1990),$=n(2520);function B(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var l,r,a,o,i=[],c=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(l=a.call(n)).done)&&(i.push(l.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return H(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?H(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,l=Array(t);n<t;n++)l[n]=e[n];return l}function J(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,l)}return n}function Z(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?J(Object(n),!0).forEach(function(t){W(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):J(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function W(e,t,n){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Y=b.Pcn,G=b.DIg,X=b.ist,Q=v.BVt,ee={id:"logarithmicTopBorder",afterDraw:e=>{var t;if("logarithmic"!==(null===(t=e.scales.y)||void 0===t?void 0:t.type))return;const n=e.ctx,l=e.chartArea,r=(0,i.X)(e,l.top,1);n.save(),n.beginPath(),n.lineWidth=1,n.strokeStyle="#e4e4e4",n.moveTo(l.left,r),n.lineTo(l.right,r),n.stroke(),n.restore()}};o.t1.register(o.PP,o.kc,o.OJ,o.E8,o.No,o.Bs,o.FN,o.hE,o.tK,o.m_,o.s$,c.Ay);const te=o.t1.defaults.plugins.zoom;te.zoom=Z(Z({},te.zoom),{},{wheel:Z(Z({},null===(L=te.zoom)||void 0===L?void 0:L.wheel),{},{speed:.025})}),te.limits=Z(Z({},te.limits),{},{x:Z(Z({},null===(M=te.limits)||void 0===M?void 0:M.x),{},{min:"original",max:"original",minRange:4}),y:Z(Z({},null===(V=te.limits)||void 0===V?void 0:V.y),{},{min:"original",max:"original",minRange:4})});const ne=o.t1.defaults.transitions;ne.zoom=Z(Z({},ne.zoom),{},{animation:Z(Z({},null===(U=ne.zoom)||void 0===U?void 0:U.animation),{},{duration:0})});const le=e=>{const t=e.datasets.map(e=>{if(Array.isArray(e.cumulativeData))return Z(Z({},e),{},{data:[...e.cumulativeData]});const t=[];let n=0;return e.data.forEach(e=>{n+=e,t.push(n)}),Z(Z({},e),{},{data:t})});return Z(Z({},e),{},{datasets:t})},re=e=>{var t,n,r,o,c,b,v,g,j,k,O,C,A,S,P,T;let q=e.data,N=e.plotName,z=e.reportVariantSelector,_=e.dataViewSelector;const F=(0,l.useRef)(null),L=(0,h.h)(),M=(L.handleOpenModal,L.handleCloseModal,(0,y.t)()),V=M.settings,U=M.setConfig,H=V.colorScheme,J=K.Tb.getStatisticsChartObject(N),W="distribution"===(null==J?void 0:J.chartCategory),te=!W&&!0===(null==J?void 0:J.fixedDataView),ne=!0===(null==J?void 0:J.hideDatasetControls),re=null==J?void 0:J.trauncateViewData,ae=(null==J?void 0:J.chartOptions)||{},oe=W?V.config.chartType.distrubution:V.config.chartType.growth,ie=V.config.chartType.scale,ce=Boolean(_),se=null!==(t=null==_?void 0:_.selectedView)&&void 0!==t?t:W||te?"non-cumulative":V.config.chartType.dataView,ue=!te&&!ce,de=null==J||null===(n=J.growthTooltipLabels)||void 0===n?void 0:n["cumulative"===se?"cumulative":"annual"],pe=(0,x.R)(),me=null===(r=ae.plugins)||void 0===r||null===(r=r.title)||void 0===r?void 0:r.text,be=Array.isArray(me)?me.join(" "):me||"",ve=B((0,l.useState)(q.datasets.map(e=>({label:e.label||"",visible:!0}))),2),fe=ve[0],ge=ve[1],he=B((0,l.useState)(()=>"cumulative"===(W||te?"non-cumulative":se)&&ue?le(q):q),2),ye=he[0],xe=he[1],we=q.datasets.map(e=>({label:e.label||"",visible:!0})),Ee=JSON.stringify([N,we.map(e=>e.label)]),je=null!==(o=null==_?void 0:_.defaultView)&&void 0!==o?o:W||te?"non-cumulative":"cumulative",ke=()=>{var e,t;null===(e=F.current)||void 0===e||null===(t=e.resetZoom)||void 0===t||t.call(e,"none"),ge(we),null==_||_.onChange(je),U({chartType:Z(Z({},V.config.chartType),{},{[W?"distrubution":"growth"]:"bar",scale:"linear",dataView:je})}),xe("cumulative"===je&&ue?le(q):q)};(0,l.useEffect)(()=>{ge(we)},[Ee]),(0,l.useEffect)(()=>{const e="cumulative"===se&&ue?le(q):q;xe(e)},[se,q,ue]),(0,l.useEffect)(()=>{if("cumulative"===se&&ue){const e=le(q);xe({labels:q.labels,datasets:e.datasets.map(e=>{var t;return Z(Z({},e),{},{hidden:!1===(null===(t=fe.find(t=>t.label===e.label))||void 0===t?void 0:t.visible)})})})}else xe({labels:q.labels,datasets:q.datasets.map(e=>{var t;return Z(Z({},e),{},{hidden:!1===(null===(t=fe.find(t=>t.label===e.label))||void 0===t?void 0:t.visible)})})})},[se,q,fe,ue]);const Oe=()=>{U({chartType:Z(Z({},V.config.chartType),{},{scale:"linear"===V.config.chartType.scale?"logarithmic":"linear"})})},Ce=e=>{_?_.onChange(e):U({chartType:Z(Z({},V.config.chartType),{},{dataView:e})})},Ae=(e,t)=>{var n,l;if(null!==(n=e.native)&&void 0!==n&&n.shiftKey||0===t.length||!ye.labels)return;const r=t[0],a=r.index,o=r.datasetIndex,i=ye.labels[a],c=null===(l=ye.datasets)||void 0===l||null===(l=l[o])||void 0===l?void 0:l.label;if(J&&J.getSearchObj){var s;const e=J.getSearchObj(Z(Z({},V),{},{currentInput:fe}),i,c),t=JSON.stringify(e),n=encodeURIComponent(t),l=(null===(s=J.query)||void 0===s?void 0:s.returnType)===$.pz.MolDefinition?"/search/chemical/?request=":"/search?request=",r="".concat(V.config.searchAdvancedUrl).concat(l).concat(n);window.open(r,"_blank")}},Se=null===(c=ae.plugins)||void 0===c?void 0:c.zoom,Pe="bar"!==oe&&"line"!==oe||null==Se||!Se.zoom?Se:Z(Z({},Se),{},{pan:Z(Z({},Se.pan),{},{modifierKey:"shift"}),zoom:Z(Z({},Se.zoom),{},{drag:Z(Z({},null===(b=Se.zoom)||void 0===b?void 0:b.drag),{},{enabled:!0,threshold:10,backgroundColor:"rgba(51, 122, 183, 0.16)",borderColor:"#337ab7",borderWidth:1,drawTime:"afterDatasetsDraw"})})}),De=Z(Z({},ae),{},{layout:{padding:{right:1}},scales:W||"line"!==oe?ae.scales:Z(Z({},ae.scales),{},{x:Z(Z({},null===(v=ae.scales)||void 0===v?void 0:v.x),{},{stacked:!1}),y:Z(Z({},null===(g=ae.scales)||void 0===g?void 0:g.y),{},{type:ie,stacked:!1,min:"logarithmic"===ie?1:void 0,ticks:{callback:function(e){return"logarithmic"===ie?-1!==[1,10,100,1e3,1e4,1e5].indexOf(e)?e:null:e}},title:{display:!0,text:"".concat((null==ae||null===(j=ae.scales)||void 0===j||null===(j=j.y)||void 0===j||null===(j=j.title)||void 0===j?void 0:j.text)||"Y-Axis"," ").concat("logarithmic"===ie?"(Logarithmic scale)":"(Linear scale)")}})}),plugins:Z(Z({},ae.plugins),{},{tooltip:de?Z(Z({},null===(k=ae.plugins)||void 0===k?void 0:k.tooltip),{},{callbacks:Z(Z({},null===(O=ae.plugins)||void 0===O||null===(O=O.tooltip)||void 0===O?void 0:O.callbacks),{},{label:e=>" ".concat(de,": ").concat((0,w.bF)(e.raw))})}):null===(C=ae.plugins)||void 0===C?void 0:C.tooltip,zoom:Pe,title:Z(Z({},null===(A=ae.plugins)||void 0===A?void 0:A.title),{},{display:!1}),legend:{display:q.datasets.length>1,position:"bottom",align:"start",labels:{generateLabels:e=>e.data.datasets.map((e,t)=>({text:e.label||"Dataset ".concat(t+1),fillStyle:e.backgroundColor,hidden:e.hidden||!1,datasetIndex:t})).filter(e=>!e.hidden),boxWidth:40,padding:20,font:{size:14,family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",style:"normal"},color:"#333"},onClick:()=>{}}}),elements:Z(Z({},ae.elements),{},{bar:Z(Z({},null===(S=ae.elements)||void 0===S?void 0:S.bar),{},{hoverBackgroundColor:(e,t)=>{return n=t.backgroundColor,(0,i.c)(n).saturate(1).darken(.3).hexString();var n},hoverBorderWidth:0}),line:Z(Z({},null===(P=ae.elements)||void 0===P?void 0:P.line),{},{tension:.1,spanGaps:!0}),point:Z(Z({},null===(T=ae.elements)||void 0===T?void 0:T.point),{},{radius:0,hoverRadius:0})}),animation:{duration:400,easing:"easeInOutQuart"},onHover:(e,t)=>{t.length?e.native.target.style.cursor="pointer":e.native.target.style.cursor="default"}}),Te=e=>{U({chartType:Z(Z({},V.config.chartType),{},{[W?"distrubution":"growth"]:e})})},qe=(e,t)=>{const n=e.datasets[0],l=e.labels.map(e=>"string"==typeof e?e.replace(/\s+Da$/i,""):e),r=e.labels.map((e,n)=>t[n%t.length]);return{labels:l,datasets:[{data:n.data,backgroundColor:r,borderColor:r,borderWidth:1}]}},Ne=e=>{var t;e.title;const n=e.legend,l=e.tooltips,r=e.responsive,a=e.plugins,o="y"===e.indexAxis?"y":"x",i=null===(t=e.scales)||void 0===t||null===(t=t[o])||void 0===t?void 0:t.title,c=null==i?void 0:i.text,s="string"==typeof c?c.trim().length>0:Array.isArray(c)&&c.length>0,u={responsive:null==r||r,maintainAspectRatio:!1,plugins:Z(Z({},a),{},{subtitle:Z(Z({},null==a?void 0:a.subtitle),{},{display:!1!==(null==i?void 0:i.display)&&s,position:"bottom",text:c,color:null==i?void 0:i.color,font:null==i?void 0:i.font,padding:{top:10,bottom:0}}),legend:Z(Z({},n),{},{display:!0,position:"bottom",onClick:(e,t,n)=>((e,t)=>{const n=e.getDatasetMeta(0),l=t.index;if(void 0!==l){const r=n.data[l].hidden;n.data[l].hidden=!r,t.hidden=n.data[l].hidden,e.options.plugins.legend.labels.generateLabels=e=>e.data.labels.map((t,l)=>({text:t,fillStyle:e.data.datasets[0].backgroundColor[l],hidden:n.data[l].hidden,index:l})),e.update()}})(n.chart,t)}),tooltip:Z(Z({},l),{},{callbacks:{label:e=>{const t=e.dataset,n=e.dataIndex,l=e.chart.getDatasetMeta(0).data.map((e,t)=>e.hidden?null:t).filter(e=>null!==e).map(e=>t.data[e]),r=t.data[n],a=(r/l.reduce((e,t)=>e+t,0)*100).toFixed(2);return"".concat(e.label,": ").concat((0,w.bF)(r)," - ").concat(a,"% (of shown data)")}}})}),animation:{animateScale:!0,animateRotate:!0},elements:{arc:{hoverBorderWidth:3,hoverOffset:20,hoverBorderColor:"white"}},onHover:(e,t)=>{t.length?e.native.target.style.cursor="pointer":e.native.target.style.cursor="default"}};return u},ze=e=>{if(!e||!e.datasets||!Array.isArray(e.datasets))return{labels:[],datasets:[]};const t=e.datasets.map(e=>{const t=e.data.map(e=>"number"!=typeof e||isNaN(e)?null:e);return Z(Z({},e),{},{data:t,stack:void 0,fill:!1,borderColor:e.borderColor||"rgba(75, 192, 192, 1)",backgroundColor:e.backgroundColor||"rgba(75, 192, 192, 0.2)",borderWidth:3,pointRadius:0,pointHoverRadius:0,tension:.1})});return{labels:e.labels||[],datasets:t}},_e=()=>z?l.createElement(E.NF,null,l.createElement(E.Yg,null,z.title),z.options.map(e=>l.createElement(s.A.Check,{key:e.key,type:"radio",id:"report-variant-".concat(N,"-").concat(e.key),label:e.label,name:"report-variant-".concat(N),value:e.key,checked:z.selectedKey===e.key,onChange:()=>z.onChange(e.key)}))):null;return l.createElement(l.Fragment,null,l.createElement(E.Kb,null,l.createElement(E.OV,{onClick:e=>{if(null==J||!J.getSearchObj)return;const t=(()=>{const e=fe.some(e=>!e.visible);return W||!e?(0,w.ry)(pe,V):((e,t,n,l,r)=>{var a,o;const i="".concat(t.config.searchApiUrl,"/query-editor.html?json="),c=null==J||null===(a=J.query)||void 0===a||null===(a=a.firstDim)||void 0===a?void 0:a.attribute,s=null==J||null===(o=J.query)||void 0===o?void 0:o.returnType;let u,d,p;if(l){var m,b;const e=null==J||null===(m=J.query)||void 0===m||null===(m=m.firstDim)||void 0===m?void 0:m.ranges,t=null==J||null===(b=J.query)||void 0===b||null===(b=b.firstDim)||void 0===b?void 0:b.filter;if(e&&!t){var v,f;if(!Array.isArray(e)||e.length<2)return i;if(u=null===(v=e[0])||void 0===v?void 0:v.to,d=null===(f=e[e.length-1])||void 0===f?void 0:f.from,void 0===u||void 0===d)return i;p={type:$.Type.Terminal,label:"text",service:$.kl.Text,parameters:{attribute:c,operator:$.XP.Range,value:{from:u,to:d,include_lower:!0,include_upper:!1}}}}else if(t){var g,h;const e=r.labels,t=Array.isArray(null==J||null===(g=J.query)||void 0===g||null===(g=g.firstDim)||void 0===g?void 0:g.facets)?null==J||null===(h=J.query)||void 0===h||null===(h=h.firstDim)||void 0===h||null===(h=h.facets[0])||void 0===h?void 0:h.attribute:void 0;p={type:$.Type.Group,nodes:e.map(e=>({type:$.Type.Terminal,service:$.kl.Text,parameters:{attribute:t,operator:$.XP.ExactMatch,value:e}})),logical_operator:$.LogicalOperator.Or,label:"text"}}else{const e=r.labels.slice(0,25);p={type:$.Type.Group,nodes:e.map(e=>({type:$.Type.Terminal,service:$.kl.Text,parameters:{attribute:c,operator:$.XP.ExactMatch,negation:!1,value:e}})),logical_operator:$.LogicalOperator.Or,label:"text"}}}else{var y;const e=n(t,"1976-05-19");if(!e||!e.query||!e.query.nodes)return i;const l=null!=J&&null!==(y=J.query)&&void 0!==y&&null!==(y=y.secondDim)&&void 0!==y&&y.filter?e.query.nodes.slice(1):e.query.nodes.slice(1)[0].nodes;p={type:e.query.type,nodes:l,logical_operator:$.LogicalOperator.Or}}const x={query:p,return_type:s,request_options:e.searchRequest.request_options},w=encodeURIComponent(JSON.stringify(x));return"".concat(i).concat(w)})(pe,Z(Z({},V),{},{currentInput:fe}),J.getSearchObj,W,ye)})();t&&window.open(t,"_blank")}},l.createElement(Y,null)," Search API")),l.createElement(p.A,null,(e=>{Z(Z({},De),{},{maintainAspectRatio:!1,plugins:Z(Z({},De.plugins),{},{legend:Z(Z({},De.plugins.legend),{},{display:!1})})});const t=()=>"Report: ".concat(be,", Generated on: ").concat((new Date).toLocaleDateString()," ").concat((new Date).toLocaleTimeString()),n=(e,t,n)=>{var l,r;if(null==e||null===(l=e.datasets)||void 0===l||!l.length||0===e.labels.length)return{columns:[],gridData:[]};if(t){var a,o;const t=e.labels||[],l=e.datasets[0]||{},r=(null===(a=n.scales)||void 0===a||null===(a=a.x)||void 0===a||null===(a=a.title)||void 0===a?void 0:a.text)||"Range",i=(null===(o=n.scales)||void 0===o||null===(o=o.y)||void 0===o||null===(o=o.title)||void 0===o?void 0:o.text)||"Number of Entries";return{columns:"x"===n.indexAxis?[r,i]:[i,r],gridData:t.map((e,t)=>[e,(0,w.bF)(l.data[t]||0)])}}if(1===e.datasets.length)return{columns:["Year",(null===(r=n.scales)||void 0===r||null===(r=r.y)||void 0===r||null===(r=r.title)||void 0===r?void 0:r.text)||"Data"],gridData:e.labels.map((t,n)=>[t,(0,w.bF)(e.datasets[0].data[n]||0)])};const i=e.datasets.filter(e=>{var t;return!1!==(null===(t=fe.find(t=>t.label===e.label))||void 0===t?void 0:t.visible)});return{columns:["Year",...i.map(e=>e.label)],gridData:e.labels.map((e,t)=>{const n=[e];return i.forEach(e=>{n.push((0,w.bF)(e.data[t]||0))}),n})}},r=n(ye,W,ae);if(0===r.columns.length||0===r.gridData.length)return l.createElement("p",null,"No data available for table.");const o=r.gridData.map(e=>{const t={};return r.columns.forEach((n,l)=>{t[n]=e[l]}),t}),i=re?Z(Z({},ye),{},{labels:ye.labels.slice(0,25),datasets:ye.datasets.map(e=>Z(Z({},e),{},{data:e.data.slice(0,25)},Array.isArray(e.stackData)&&{stackData:e.stackData.slice(0,25)}))}):ye,c=Z(Z({},i),{},{datasets:i.datasets.map(e=>Array.isArray(e.stackData)?Z(Z({},e),{},{displayData:e.data,data:e.stackData}):e)}),p={bar:l.createElement(a.yP,{ref:F,data:c,options:Z(Z({},De),{},{onClick:Ae})}),line:l.createElement(a.N1,{ref:F,data:ze(ye),options:De,plugins:[ee]}),pie:l.createElement(a.Fq,{ref:F,data:qe(i,H),options:Z(Z({},Ne(De)),{},{onClick:Ae})}),table:l.createElement(D,{data:o})};return l.createElement(d.A,null,l.createElement(u.A,{md:10},l.createElement(E.rh,{$isTable:"table"===oe},l.createElement(E.hx,null,be),l.createElement(E.at,{$isTable:"table"===oe,$fullscreen:e},p[oe]),l.createElement(E.Q3,null,l.createElement("div",{dangerouslySetInnerHTML:{__html:(null==J?void 0:J.description)||""}})))),l.createElement(u.A,{md:2},l.createElement(d.A,null,l.createElement(E.G,{md:2},l.createElement(E.Tu,null,l.createElement(l.Fragment,null,l.createElement(I,{"data-tooltip-id":"chart-type-tooltip","data-tooltip-content":"Change Chart type",chartType:oe,handleChartTypeChange:Te,isDistPlot:W}),l.createElement(E.vE,{"data-tooltip-id":"table-tooltip","data-tooltip-content":"Display data in a structured, sortable table format",disabled:!1,selected:"table"===oe,onClick:()=>Te("table")},l.createElement(X,{size:15})),l.createElement(E.vE,{"data-tooltip-id":"csv-tooltip","data-tooltip-content":"Export data in a CSV format",onClick:()=>{const e=n(ye,W,ae),l=((e,n)=>{const l=t(),r=[...n].sort((e,t)=>e[0]>t[0]?-1:e[0]<t[0]?1:0);return[l,e.join(","),...r.map(e=>e.map(e=>e.replace(/,/g,"")).join(","))].join("\n")})(e.columns,e.gridData),r=new Blob([l],{type:"text/csv;charset=utf-8;"}),a=URL.createObjectURL(r),o=document.createElement("a");o.href=a;const i=t(),c="".concat(i.replace(/[^a-z0-9]/gi,"_").toLowerCase(),".csv");o.setAttribute("download",c),document.body.appendChild(o),o.click(),document.body.removeChild(o)},disabled:!1},l.createElement(Q,{size:15})),!W&&("line"===oe?l.createElement(R,{"data-tooltip-id":"scale-tooltip","data-tooltip-content":"Toggle data scale",scaleType:ie,handleScaleTypeChange:Oe,isDistPlot:W,disabled:!1}):l.createElement(E.vE,{"data-tooltip-id":"scale-tooltip","data-tooltip-content":"Switch to the Line Chart view to enable the option to change the scale to logarithmic",disabled:!0},l.createElement(f,{size:15,color:"#606060",disabled:!0}))),l.createElement(E.vE,{"data-tooltip-id":"reset-tooltip","data-tooltip-content":"Reset chart to the default display and clear any applied filters",onClick:ke,disabled:!1},l.createElement(G,{size:15})),l.createElement(m.m_,{id:"settings-tooltip",place:"left"}),l.createElement(m.m_,{id:"information-tooltip",place:"left"}),l.createElement(m.m_,{id:"chart-type-tooltip",place:"left"}),l.createElement(m.m_,{id:"table-tooltip",place:"left"}),l.createElement(m.m_,{id:"scale-tooltip",place:"left"}),l.createElement(m.m_,{id:"csv-tooltip",place:"left"}),l.createElement(m.m_,{id:"reset-tooltip",place:"left"})))),(()=>{const e=!ne&&fe.length>1,t=!W&&(Boolean(z)||e),n=W&&Boolean(z);return l.createElement(u.A,{md:10},l.createElement(E.Nk,null,l.createElement(l.Fragment,null,W?n&&l.createElement(l.Fragment,null,l.createElement(E.MV,null,"Data Options"),_e()):l.createElement(l.Fragment,null,t&&l.createElement(E.MV,null,"Data Options"),_e(),e&&l.createElement(E.ou,null,l.createElement(E.Yg,null,"Data Shown"),fe.map(e=>{const t="unique-protein-sequences"===N&&e.label?"Identity ".concat(parseFloat(e.label).toFixed(0),"%"):e.label;return l.createElement(E.VT,{key:e.label},l.createElement(E.ph,{type:"checkbox",id:e.label,checked:e.visible,onChange:()=>{return t=e.label,void ge(e=>e.map(e=>e.label===t?Z(Z({},e),{},{visible:!e.visible}):e));var t}}),l.createElement(E.Gw,{htmlFor:e.label},t))})),(!te||_)&&l.createElement(E.NF,null,l.createElement(E.Yg,null,"Data Set"),l.createElement(s.A.Check,{type:"radio",id:"view-annual",label:"Annual",name:"view-switch",value:"non-cumulative",checked:"non-cumulative"===se,onChange:()=>Ce("non-cumulative")}),l.createElement(s.A.Check,{type:"radio",id:"view-cumulative",label:"Cumulative",name:"view-switch",value:"Cumulative",checked:"cumulative"===se,onChange:()=>Ce("cumulative")}))))))})())))})(!1)))};var ae=n(1727),oe=n(6402),ie=n(1086),ce=n(1760),se=n(3431),ue=n(8741),de=n(6644);function pe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,l)}return n}function me(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pe(Object(n),!0).forEach(function(t){be(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pe(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function be(e,t,n){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const ve=e=>{const t=K.Tb.getStatisticsChartObject(e);return{stats_notes:null==t?void 0:t.description,query:null==t?void 0:t.query}},fe=e=>/^unique-protein-sequences-(30|50|70|90|95|100)$/.test(e),ge=(e,t)=>{var n;return null!==(n=e[t%Math.max(e.length,1)])&&void 0!==n?n:"#4f81bd"},he=e=>{var t,n;return null!==(t=null===(n=String(e).match(/\d{4}/))||void 0===n?void 0:n[0])&&void 0!==t?t:String(e)},ye=e=>{const t=String(e).match(/\d{4}-\d{2}-\d{2}/g),n=null==t?void 0:t[t.length-1];if(!n)return String(e).slice(-4);const l=new Date("".concat(n,"T00:00:00Z"));return l.setUTCDate(l.getUTCDate()-1),String(l.getUTCFullYear())},xe=function(e,t,n,l){return{label:e,population:t,objectConfig:{objectId:[e,n,t,...arguments.length>4&&void 0!==arguments[4]?arguments[4]:[]],color:l,label:n}}},we=(e,t)=>{var n;const l=null==e||null===(n=e.facets)||void 0===n?void 0:n.find(e=>e.name===t);if(!l||!Array.isArray(l.buckets)||0===l.buckets.length)throw new Error("Missing Search API facet: ".concat(t));return l.buckets},Ee=e=>{var t;const n=null==e||null===(t=e.facets)||void 0===t?void 0:t.find(e=>e.name===K.zF);var l;if(void 0===(null==n?void 0:n.value)||null===(null==n?void 0:n.value))throw new Error("Missing UniProtKB cardinality for ".concat(null!==(l=null==e?void 0:e.label)&&void 0!==l?l:"unknown bucket"));const r=Number(n.value);var a;if(!Number.isFinite(r))throw new Error("Invalid UniProtKB cardinality for ".concat(null!==(a=null==e?void 0:e.label)&&void 0!==a?a:"unknown bucket"));return r},je=e=>e.map((e,t)=>{var n;return me(me({},e),{},{label:null!==(n=K.cJ[t])&&void 0!==n?n:e.label})}),ke=e=>{var t;const n=(0,de.cloneDeep)(e.firstDim);e.secondDim&&(0,ue.vw)(e.secondDim,n);const l=(null!==(t=e.additionalFacets)&&void 0!==t?t:[]).map(e=>(0,de.cloneDeep)(e));return{return_type:e.returnType,request_options:me({paginate:{rows:0},facets:[n,...l]},e.resultsContentType?{results_content_type:e.resultsContentType}:{})}},Oe=async(e,t,n)=>{const l=ve(e),r=l.stats_notes,a=l.query;if(!a)throw new Error("Unknown chart key: ".concat(e));return Ce(e,t,a,!1,r,n)},Ce=async function(e,t,n){let l=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=arguments.length>5?arguments[5]:void 0;const a=ke(n),o=await(async(e,t)=>{const n="".concat(t.searchApiUrl,"/rcsbsearch/v2/query");return fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>{if(!e.ok)throw new Error(e.statusText);return e.json()}).catch(e=>{throw console.error("Error:",e),e})})(a,r.config);if(!o)return[[]];if(e===K.HL)return((e,t)=>{const n=[...we(e,K.yF)].sort((e,t)=>Number(he(e.label))-Number(he(t.label))),l=new Map(we(e,K.mf).map(e=>[ye(e.label),Ee(e)])),r=K.zF;return[n.map(e=>{const n=he(e.label),a=l.get(n);if(void 0===a)throw new Error("Missing cumulative UniProtKB count for ".concat(n));return me(me({},xe(n,Ee(e),r,ge(t,0))),{},{cumulativePopulation:a})})]})(o,t);if((e=>/^unique-protein-domains-annual-(all|scop|ecod|scop2|cath)$/.test(e))(e))return((e,t,n)=>{var l,r;const a=[...null!==(l=null==t||null===(r=t.facets)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.buckets)&&void 0!==l?l:[]].sort((e,t)=>Number(he(e.label))-Number(he(t.label)));return(e===K.K4?["SCOP","ECOD","SCOP2","CATH"]:[e.replace("unique-protein-domains-annual-","").toUpperCase()]).map((t,l)=>{var r;const o=null!==(r=K.Ul[t])&&void 0!==r?r:t;return a.map(r=>{const a=he(r.label),i=((e,t,n)=>{var l,r;if(e===K.K4){var a,o;const e=null==t||null===(a=t.facets)||void 0===a||null===(a=a[0])||void 0===a||null===(a=a.buckets)||void 0===a?void 0:a.find(e=>String(e.label).toUpperCase()===n);return Number(null!==(o=null==e?void 0:e.population)&&void 0!==o?o:0)}return Number(null!==(l=null==t||null===(r=t.facets)||void 0===r||null===(r=r[0])||void 0===r||null===(r=r.buckets)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.population)&&void 0!==l?l:0)})(e,r,t);return xe(a,i,o,ge(n,l))})})})(e,o,t);if((e=>/^unique-protein-sequences-annual-(30|50|70|90|95|100)$/.test(e))(e))return((e,t)=>{var n,l;return[[...null!==(n=null==e||null===(l=e.facets)||void 0===l||null===(l=l[0])||void 0===l?void 0:l.buckets)&&void 0!==n?n:[]].sort((e,t)=>Number(he(e.label))-Number(he(t.label))).map(e=>{var n,l;const r=he(e.label),a=Number(null!==(n=null==e||null===(l=e.facets)||void 0===l||null===(l=l[0])||void 0===l?void 0:l.value)&&void 0!==n?n:0);return xe(r,a,"Number of Unique Protein Sequences",ge(t,0))})]})(o,t);if((e=>(e=>/^unique-protein-domains-(scop|ecod|scop2|cath)$/.test(e))(e)||fe(e))(e))return((e,t,n)=>{var l,r;const a=[...null!==(l=null==t||null===(r=t.facets)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.buckets)&&void 0!==l?l:[]].sort((e,t)=>Number(ye(e.label))-Number(ye(t.label))),o=(e=>fe(e)?{annual:"Number of New Protein Sequences",total:"Total Number of Protein Sequences"}:{annual:"Number of New Domains Annually",total:"Total Number of Unique Domains Available"})(e);let i=0;const c=[],s=[];return a.forEach(t=>{const l=ye(t.label),r=((e,t)=>{var n,l,r,a;return fe(e)?Number(null!==(r=null==t||null===(a=t.facets)||void 0===a||null===(a=a[0])||void 0===a?void 0:a.value)&&void 0!==r?r:0):Number(null!==(n=null==t||null===(l=t.facets)||void 0===l||null===(l=l[0])||void 0===l||null===(l=l.buckets)||void 0===l||null===(l=l[0])||void 0===l?void 0:l.population)&&void 0!==n?n:0)})(e,t),a=i,u=r-a;i=r,c.push(xe(l,u,o.annual,ge(n,0),[r])),s.push(me(me({},xe(l,r,o.total,ge(n,1),[u])),{},{stackPopulation:a}))}),[c,s]})(e,o,t);const i=(0,se.z)(o);let c=i[0].data;const s={resolution:w.$Z,"r-free":w.$Z,"molecular-weight-structure":w.bl,"molecular-weight-entity":w.bl,"molecular-weight-small-molecules":w.U0,"atom-count":w.pF,"residue-count":w.pF,[K.sq]:je},u=s[e]?s[e](c):c;if(s[e]&&(c=u),"distribution-source-organism"===e)return[i.filter(e=>"Source Organism"===e.name).flatMap(e=>e.data.map(t=>me(me({},t),{},{labelPath:e.labelPath,objectConfig:me({},t.objectConfig||{})}))).map((e,n)=>me(me({},e),{},{objectConfig:me(me({},e.objectConfig),{},{color:t[n%t.length],label:e.labelPath.join(", ")})}))];if(e===K.NK){const e="Number of Entries";return[c.map(n=>xe(String(n.label),Number(n.population),e,ge(t,0)))]}if(l&&c.length>0){let e=0;return[c.map(e=>me(me({},e),{},{objectConfig:me(me({},e.objectConfig),{},{color:t[0%t.length],label:"Annual"})})),c.map(n=>(e+=n.population,me(me({},n),{},{population:e,objectConfig:{objectId:[n.label,e],color:t[1%t.length],label:"Cumulative"}})))]}return n.secondDim?Ae(e,n,i.filter(e=>e.name===Se(n.secondDim)),t,r.config.searchAdvancedUrl,r.currentInput):[c.map(e=>me(me({},e),{},{objectConfig:{objectId:[e.label,e.population],color:t[0%t.length]}}))]},Ae=(e,t,n,l,r,a)=>{const o=new Set,i=[],c=new Map;n.forEach(e=>{const t=e.labelPath[0];i.push(t),e.data.forEach(e=>{var n;o.add(e.label.toString()),c.has(t)||c.set(t,new Map),null===(n=c.get(t))||void 0===n||n.set(e.label.toString(),e.population)})});const s=Array.from(o),u=[];return s.forEach((e,t)=>{const n=[];i.forEach(r=>{var a,o;const i=null!==(a=null===(o=c.get(r))||void 0===o?void 0:o.get(e))&&void 0!==a?a:0;i>0&&n.push({label:r,population:i,objectConfig:{objectId:[r,e,i],color:l[t%l.length]}})}),n.length>0&&u.push(n)}),u},Se=e=>{if("name"in e)return e.name;if(!e.facets||1!==e.facets.length)throw new Error("Multiple facets are not allowed");return Se(e.facets[0])},Pe=(e,t,n)=>[e,t,n];function De(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,l)}return n}function Te(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?De(Object(n),!0).forEach(function(t){qe(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):De(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function qe(e,t,n){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ne(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var l,r,a,o,i=[],c=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(l=a.call(n)).done)&&(i.push(l.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ze(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ze(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ze(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,l=Array(t);n<t;n++)l[n]=e[n];return l}const _e=e=>{var t;e.setFullscreenContent;const n=(0,r.g)().plotname||"",a=n||"";l.useEffect(()=>{window.scrollTo(0,0)},[n]);const o=Ne(l.useState(K._Z),2),i=o[0],c=o[1],s=Ne(l.useState(K.gj),2),u=s[0],d=s[1],p=Ne(l.useState(K.XJ),2),m=p[0],b=p[1],v=Ne(l.useState(K.b4),2),f=v[0],g=v[1],h=Ne(l.useState("non-cumulative"),2),w=h[0],j=h[1],k=Ne(l.useState("non-cumulative"),2),O=k[0],C=k[1],A=(()=>{if(a===K.pm)return{title:"Types of Source Organism",options:K.$Z,selectedKey:i,onChange:e=>c(e)};if((a===K.WD||a===K.i8)&&"cumulative"===w)return{title:"Data Shown",options:K.Lw,selectedKey:u,onChange:e=>d(e)};if(a===K.fA){const e="non-cumulative"===O;return{title:"Sequence Identity",options:e?K.i7:K.WE,selectedKey:e?m:f,onChange:t=>{e?(b(t),g((e=>"unique-protein-sequences-".concat(e.replace("unique-protein-sequences-annual-","").replace("unique-protein-sequences-","")))(t))):(g(t),b((e=>"unique-protein-sequences-annual-".concat(e.replace("unique-protein-sequences-annual-","").replace("unique-protein-sequences-","")))(t)))}}}})(),S=a===K.WD||a===K.i8,P=a===K.fA,D=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const l=(0,y.t)().settings,r=l.colorScheme.join("");return(0,ce.E)({queries:e.map(e=>{var a;return{queryKey:Pe(e,t,r),queryFn:()=>Oe(e,l.colorScheme,l),enabled:!!e,staleTime:null!==(a=n.staleTime)&&void 0!==a?a:0}})})}(P?"non-cumulative"===O?K.i7.map(e=>e.key):K.WE.map(e=>e.key):[],void 0,{staleTime:1/0}),T=S?{selectedView:w,onChange:j,defaultView:"non-cumulative"}:P?{selectedView:O,onChange:C,defaultView:"non-cumulative"}:void 0,q=a===K.pm?i:S?"non-cumulative"===w?K.K4:u:P?"non-cumulative"===O?m:f:a,N=function(e,t){var n;let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const a=(0,y.t)().settings,o=(0,x.R)().setProperty,i=a.colorScheme.join(""),c=l.useRef(null);return l.useEffect(()=>{e&&c.current!==e&&(c.current=e,((e,t)=>{const n=ve(e),l=n.stats_notes,r=n.query;r&&(t("searchRequest",ke(r)),t("stats_notes",l))})(e,o))},[e,o]),(0,ie.I)({queryKey:Pe(e,t,i),queryFn:()=>Oe(e,a.colorScheme,a),enabled:!!e,staleTime:null!==(n=r.staleTime)&&void 0!==n?n:0})}(q,void 0,{staleTime:P?1/0:0}),z=N.data,_=N.isLoading,I=N.error,F=P&&D.some(e=>e.isLoading),R=null===(t=D.find(e=>e.error))||void 0===t?void 0:t.error;if(_||F)return l.createElement(E.tt,null,l.createElement(ae.A,null));if(I||R)return l.createElement(E.tt,null,l.createElement(oe.A,{error:I||R}));const L=z&&z.length>0?{labels:z[0].map(e=>e.label),datasets:z.map((e,t)=>{var n,l,r,a,o,i;const c={},s={},u={};return e.forEach(e=>{c[e.label]=e.population,"number"==typeof e.cumulativePopulation&&(s[e.label]=e.cumulativePopulation),"number"==typeof e.stackPopulation&&(u[e.label]=e.stackPopulation)}),Te(Te({label:null!==(n=null!==(l=null===(r=e[0])||void 0===r||null===(r=r.objectConfig)||void 0===r?void 0:r.label)&&void 0!==l?l:null===(a=e[0])||void 0===a||null===(a=a.objectConfig)||void 0===a||null===(a=a.objectId)||void 0===a?void 0:a[1])&&void 0!==n?n:"Dataset ".concat(t+1),data:z[0].map(e=>c[e.label]||0),backgroundColor:(null===(o=e[0])||void 0===o||null===(o=o.objectConfig)||void 0===o?void 0:o.color)||"rgba(0, 0, 0, 0.1)",borderColor:(null===(i=e[0])||void 0===i||null===(i=i.objectConfig)||void 0===i?void 0:i.color)||"rgba(0, 0, 0, 0.1)",borderWidth:1,objectConfig:e.map(e=>e.objectConfig)},Object.keys(s).length>0&&{cumulativeData:z[0].map(e=>{var t,n;return null!==(t=null!==(n=s[e.label])&&void 0!==n?n:c[e.label])&&void 0!==t?t:0})}),Object.keys(u).length>0&&{stackData:z[0].map(e=>{var t,n;return null!==(t=null!==(n=u[e.label])&&void 0!==n?n:c[e.label])&&void 0!==t?t:0})})})}:null;return l.createElement(E.tt,{key:n},L?l.createElement(l.Fragment,null,l.createElement(re,{data:L,plotName:q,reportVariantSelector:A,dataViewSelector:T})):l.createElement(E.tt,null,l.createElement(oe.A,{error:new Error("No data available")})))}},4233(e,t,n){n.d(t,{C:()=>te,G:()=>L,Gw:()=>$,Kb:()=>_,MV:()=>B,NF:()=>W,Nk:()=>R,OV:()=>F,Q3:()=>I,RZ:()=>Q,Tu:()=>M,VT:()=>U,Yg:()=>G,at:()=>Z,hf:()=>re,hx:()=>J,ne:()=>X,ou:()=>Y,ph:()=>K,rI:()=>ne,rh:()=>H,tJ:()=>le,tf:()=>ee,tt:()=>z,vE:()=>V});var l,r,a,o,i,c,s,u,d,p,m,b,v,f,g,h,y,x,w,E,j,k,O,C,A,S,P,D=n(376),T=n(4654);function q(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}const N=(0,D.i7)(l||(l=q(["\n from {\n opacity: .5;\n transform: translateZ(0) scale(0.999);\n }\n to {\n opacity: 1;\n transform: translateZ(0) scale(1);\n }\n"]))),z=D.Ay.div(r||(r=q(["\n animation: "," .5s ease-in;\n will-change: opacity, transform;\n"])),N),_=D.Ay.div(a||(a=q([" \n display: flex;\n justify-content: flex-end;\n margin-top: -10px;\n"]))),I=D.Ay.div.attrs(()=>({as:"div"}))(o||(o=q(["\n margin-top: 35px;\n padding-top: 10px;\n border-top: 1px solid #ccc;\n margin-right: 200px;\n"]))),F=D.Ay.button(i||(i=q(["\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #e7e7e7;\n border-radius: 3px;\n padding: 3px 5px;\n\n & svg { \n margin-right: 5px; \n }\n"]))),R=D.Ay.div(c||(c=q(["\n padding-left: 25px;\n margin-top: 60px;\n"]))),L=(0,D.Ay)(T.A)(s||(s=q(["\n margin-top: 60px;\n"]))),M=D.Ay.div(u||(u=q(["\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 5px;\n"]))),V=D.Ay.div(d||(d=q(["\n background-color: #f0f0f0;\n border: ",";\n padding: 5px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ",";\n filter: ",";\n\n ","\n"])),e=>e.selected?"1px solid black":"1px solid #fff",e=>e.disabled?"#bbb":"#606060",e=>e.disabled?"grayscale(30%) blur(0.5px)":"none",e=>!e.disabled&&"\n &:hover {\n background-color: #e0e0e0;\n border: 1px solid #808080;\n cursor: pointer;\n }\n "),U=D.Ay.div(p||(p=q(["\n display: flex;\n align-items: center;\n margin-bottom: 5px;\n min-width: 170px;\n"]))),K=D.Ay.input(m||(m=q(["\n margin-right: 20px;\n"]))),$=D.Ay.label(b||(b=q(["\n font-size: 12px;\n margin-left: 5px;\n font-weight: normal;\n margin-bottom: 0 !important;\n"]))),B=D.Ay.div(v||(v=q(["\n font-weight: bold;\n font-size: 1.2em;\n margin-bottom: 15px;\n"]))),H=D.Ay.div(f||(f=q(["\n width: auto;\n height: auto;\n min-height: ",";\n margin-bottom: 70px;\n margin-left: -15px;\n"])),e=>e.$isTable?"0":"550px"),J=D.Ay.h1(g||(g=q(["\n display: block;\n margin: 0;\n padding: 0 0 29px;\n font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\n font-size: 18px;\n font-weight: bold;\n color: #333;\n text-align: start;\n"]))),Z=D.Ay.div(h||(h=q(["\n position: relative;\n height: ",";\n"])),e=>{let t=e.$isTable,n=e.$fullscreen;return t?"auto":n?"calc(100% - 62px)":"calc(550px - 62px)"}),W=D.Ay.div(y||(y=q(["\n margin-top: 20px;\n min-width: 170px;\n label {\n font-size: 12px;\n font-weight: normal;\n margin-left: 5px;\n margin-bottom: 0 !important;\n margin-top: 4px !important;\n }\n .form-check {\n display: flex;\n align-items: center;\n }\n"]))),Y=D.Ay.div(x||(x=q(["\n margin-bottom: 35px;\n"]))),G=D.Ay.div(w||(w=q(["\n font-weight: bold;\n margin-bottom: 5px;\n"]))),X=(D.Ay.div(E||(E=q(["\n width: 100%;\n\n\n .col-md-10{\n width: 90% !important;\n }\n\n .col-md-10 > div:first-child {\n height: 80vh !important;\n }\n\n .col-md-2{\n width: 0 !important;\n }\n"]))),D.Ay.div(j||(j=q(["\n display: block;\n font-size: 18px;\n font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\n font-weight: bold;\n color: #333;\n padding-top: 0;\n padding-bottom: 15px;\n text-align: start;\n margin-top: -2px;\n"])))),Q=D.Ay.div(k||(k=q(["\n position: relative;\n display: inline-block;\n cursor: pointer;\n\n &:hover ul {\n display: block;\n top:-5px;\n margin-left:15px\n }\n"]))),ee=D.Ay.div(O||(O=q(["\n position: relative;\n display: inline-block;\n cursor: ",";\n opacity: ",";\n pointer-events: ",";\n filter: ",";\n color: ",";\n\n &:hover ul {\n display: ",";\n top: -5px;\n margin-left: 15px;\n }\n"])),e=>e.disabled?"not-allowed":"pointer",e=>e.disabled?.4:1,e=>e.disabled?"none":"auto",e=>e.disabled?"grayscale(30%) blur(0.5px)":"none",e=>e.disabled?"#bbb":"inherit",e=>e.disabled?"none":"block"),te=D.Ay.div(C||(C=q(["\n display: flex;\n align-items: center;\n cursor: pointer;\n position: relative;\n\n .triangle {\n width: 8px;\n aspect-ratio: 1;\n clip-path: polygon(0 0, 100% 0, 50% 70%);\n background-color: #999;\n position: absolute;\n right: -9px;\n top: 50%;\n transform: translateY(-10%);\n transition: transform 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n }\n\n &:hover .triangle {\n transform: translateY(0.2rem);\n }\n"]))),ne=D.Ay.ul(A||(A=q(["\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n min-width: 160px;\n padding: 2px 0;\n margin: 0;\n font-size: 14px;\n color: #333;\n text-align: left;\n list-style: none;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n\n ",":hover & {\n display: block;\n }\n\n & > li.disabled {\n pointer-events: none;\n color: #ccc;\n }\n\n & > li:not(.disabled):hover {\n background-color: #f8f9fa;\n }\n"])),Q),le=D.Ay.li(S||(S=q(["\n padding: 8px 20px;\n display: flex;\n align-items: center;\n cursor: pointer;\n white-space: nowrap;\n\n &:hover {\n background-color: #f1f1f1;\n }\n"]))),re=D.Ay.span(P||(P=q(["\n margin-left: 8px;\n font-size: 14px;\n color: #333;\n margin-right: 5px;\n"])))}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_rcsb_rcsb_statistics=self.webpackChunk_rcsb_rcsb_statistics||[]).push([[463],{2463(e,t,r){r.r(t),r.d(t,{default:()=>C});var n=r(9711),a=r(376),l=r(9281);const o=async(e,t)=>{var r;return(async(e,t)=>{const r="".concat(t.replace(/\/$/,""),"/rcsbsearch/v2/query"),n=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok)throw new Error(n.statusText);return n.json()})(e,null==t||null===(r=t.config)||void 0===r?void 0:r.searchApiUrl)},i={request_info:{query_id:"ligand_complex_stats_any_ligand",src:"ui"},request_options:{results_content_type:["experimental"]},return_type:"entry",query:{type:"terminal",service:"text",parameters:{attribute:"rcsb_entry_info.nonpolymer_entity_count",operator:"greater",value:0}}},s=[i,{request_info:{query_id:"ligand_complex_stats_mv100",src:"ui"},return_type:"entry",request_options:{results_content_type:["experimental"]},query:{type:"group",logical_operator:"and",nodes:[i.query,{type:"terminal",service:"text_chem",parameters:{attribute:"chem_comp.formula_weight",operator:"range",value:{from:100,to:300,include_lower:!0,include_upper:!0}}}]}},{request_info:{query_id:"ligand_complex_stats_mv300",src:"ui"},return_type:"entry",request_options:{results_content_type:["experimental"]},query:{type:"group",logical_operator:"and",nodes:[i.query,{type:"terminal",service:"text_chem",parameters:{attribute:"chem_comp.formula_weight",operator:"range",value:{from:300,to:500,include_lower:!0,include_upper:!0}}}]}},{request_info:{query_id:"ligand_complex_stats_mv500",src:"ui"},return_type:"entry",request_options:{results_content_type:["experimental"]},query:{type:"group",logical_operator:"and",nodes:[i.query,{type:"terminal",service:"text_chem",parameters:{attribute:"chem_comp.formula_weight",operator:"range",value:{from:500,to:1200,include_lower:!0,include_upper:!0}}}]}},{request_info:{query_id:"ligand_complex_stats_loi",src:"ui"},return_type:"entry",request_options:{results_content_type:["experimental"]},query:{type:"group",logical_operator:"and",nodes:[{type:"terminal",service:"text",parameters:{attribute:"rcsb_nonpolymer_entity_annotation.comp_id",operator:"exists"}},{type:"terminal",service:"text",parameters:{attribute:"rcsb_nonpolymer_entity_annotation.type",operator:"exact_match",value:"SUBJECT_OF_INVESTIGATION"}}]}},{request_info:{query_id:"ligand_complex_stats_bird",src:"ui"},return_type:"entry",request_options:{results_content_type:["experimental"]},query:{type:"terminal",service:"text_chem",parameters:{attribute:"pdbx_reference_molecule.prd_id",operator:"exists"}}},{request_info:{query_id:"ligand_complex_stats_branched_entities",src:"ui"},return_type:"entry",request_options:{results_content_type:["experimental"]},query:{type:"terminal",service:"text",parameters:{attribute:"pdbx_entity_branch.type",operator:"exact_match",value:"oligosaccharide"}}}],c=["structures with any non-polymer small molecules","structures with non-polymer small molecules of 100-300 Da","structures with non-polymer small molecules of 300-500 Da","structures with non-polymer small molecules of 500-1200 Da","structures with author-designated Ligand/s of Interest","structures with a biologically interesting short oligomer or oligomer-like BIRD molecules","structures with branched entities of oligosaccharides"],u={request_options:{paginate:{start:0,rows:0},results_content_type:["experimental"],facets:[{filter:{type:"terminal",service:"text",parameters:{attribute:"exptl.method",operator:"exact_match",value:"ELECTRON MICROSCOPY"}},facets:[{filter:{type:"terminal",service:"text",parameters:{attribute:"pdbx_database_related.content_type",operator:"exact_match",value:"associated EM volume"}},facets:[{filter:{type:"terminal",service:"text",parameters:{attribute:"pdbx_database_related.db_name",operator:"exact_match",value:"EMDB"}},facets:[{name:"pdbx_database_related.db_id",aggregation_type:"cardinality",attribute:"pdbx_database_related.db_id"}]}]}]}]},return_type:"entry"},p={query:{type:"group",logical_operator:"and",nodes:[{type:"group",logical_operator:"and",nodes:[{type:"terminal",service:"text",parameters:{operator:"exact_match",value:"ELECTRON MICROSCOPY",attribute:"exptl.method"}},{type:"terminal",service:"text",parameters:{operator:"exact_match",value:"EMDB",attribute:"pdbx_database_related.db_name"}},{type:"terminal",service:"text",parameters:{operator:"exact_match",value:"associated EM volume",attribute:"pdbx_database_related.content_type"}}]}]},return_type:"entry",request_options:{results_content_type:["experimental"]}},m=[{key:"exptl-data-counts-info",title:"Experimental Data Counts Info",description:"Experimental Data Counts Info Description",return_type:"entry",facets:[{name:"rcsb_repository_holdings_current.repository_content_types",aggregation_type:"terms",attribute:"rcsb_repository_holdings_current.repository_content_types"}]}],d=e=>{const t={type:"group",logical_operator:"and",nodes:[{type:"terminal",service:"text",parameters:{attribute:"rcsb_repository_holdings_current.repository_content_types",operator:"exact_match",value:e}}]},r={};return r.query=t,r.return_type="entry",r.request_info={src:"ui",query_id:"stats"},encodeURIComponent(JSON.stringify(r))},y={return_type:"entry",request_options:{facets:[{name:"rcsb_entry_info.experimental_method",aggregation_type:"terms",attribute:"rcsb_entry_info.experimental_method",facets:[{name:"rcsb_entry_info.selected_polymer_entity_types",aggregation_type:"terms",attribute:"rcsb_entry_info.selected_polymer_entity_types"}]}],paginate:{start:0,rows:0}}};function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l,o,i=[],s=!0,c=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=l.call(r)).done)&&(i.push(n.value),i.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw a}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}const b=e=>e instanceof Error?e.message:String(e);var f,g,v,x=r(4966);function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function w(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}const N=["Protein (only)","Protein/Oligosaccharide","Protein/NA","Nucleic acid (only)","Other","Oligosaccharide (only)"],q=a.Ay.h1(f||(f=w(["\n display: block;\n font-size: 18px;\n font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\n font-weight: bold;\n color: #333;\n padding-top: 0;\n padding-bottom: 15px;\n text-align: start;\n margin-top: -2px;\n margin-bottom: 0;\n"]))),S=a.Ay.div(g||(g=w(["\n display: grid;\n grid-template-columns: minmax(80px, max-content) minmax(0, 1fr);\n align-items: baseline;\n gap: 4px;\n margin-bottom: 4px;\n"]))),M=a.Ay.a(v||(v=w(["\n display: inline-block;\n min-width: 80px;\n text-align: right;\n"]))),I=e=>{let t=e.count,r=void 0===t?3:t;return n.createElement(n.Fragment,null,Array.from({length:r},(e,t)=>n.createElement(x.kD,{key:"summary-loading-row-".concat(t)})))},D=e=>[...e].sort((e,t)=>{var r,n;return Number(null!==(r=t.population)&&void 0!==r?r:0)-Number(null!==(n=e.population)&&void 0!==n?n:0)}),C=()=>{const e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3;const t=(0,l.t)().settings,r=_((0,n.useState)([]),2),a=r[0],i=r[1],h=_((0,n.useState)([]),2),f=h[0],g=h[1],v=_((0,n.useState)(null),2),x=v[0],E=v[1],w=_((0,n.useState)([]),2),N=w[0],q=w[1],S=_((0,n.useState)(!0),2),M=S[0],I=S[1],D=_((0,n.useState)(null),2),C=D[0],U=D[1];return(0,n.useEffect)(()=>{let r=!1;return(async()=>{const n=Math.max(1,Math.floor(Number.isFinite(e)?e:3)),a=new Array(s.length);let l,_,h=null,f=null;const v=()=>{f&&!r&&g(((e,t)=>{const r=[];return e.forEach(e=>{"structure factors"===e.label?r.push({label:"have a structure factor file",population:e.population,searchUrl:d(e.label)}):"NMR restraints V1"===e.label?r.push({label:"have an NMR restraint file",population:e.population,searchUrl:d(e.label)}):"NMR chemical shifts"===e.label?r.push({label:"have a chemical shifts file",population:e.population,searchUrl:d(e.label)}):"Combined NMR data (NEF)"===e.label&&r.push({label:"have NMR unified data files (NEF and/or NMR-STAR format files)",population:e.population,searchUrl:d(e.label)})}),t&&r.push({label:t.label,population:t.population,searchUrl:encodeURIComponent(JSON.stringify(t.searchUrl))}),r})(f,null!=h?h:void 0))},x=()=>{void 0===l||void 0===_||r||(h={label:"PDB structures were determined using ".concat(_.toLocaleString("en-US")," 3DEM maps"),population:l,searchUrl:p},E(h),v())},w=m[0],N={return_type:w.return_type||"entry",request_options:{paginate:{rows:0},facets:w.facets}},S=y,M=s.map((e,n)=>({label:c[n],run:async()=>{var l;const s=await o(e,t);r||(a[n]={label:c[n],population:Number(null!==(l=s.total_count)&&void 0!==l?l:0),searchUrl:e},i(a.filter(Boolean)))}})),D=[{label:"experimental data counts",run:async()=>{var e,n;const a=await o(N,t);r||(f=null!==(e=null==a||null===(n=a.facets)||void 0===n||null===(n=n[0])||void 0===n?void 0:n.buckets)&&void 0!==e?e:[],v())}},{label:"summary holdings data",run:async()=>{var e,n;const a=await o(S,t);if(r)return;const l=null!==(e=null==a||null===(n=a.facets)||void 0===n||null===(n=n[0])||void 0===n?void 0:n.buckets)&&void 0!==e?e:[];q(l)}},M[0],{label:"EMDB-associated PDB structures",run:async()=>{var e;const n=await o(p,t);r||(l=Number(null!==(e=n.total_count)&&void 0!==e?e:0),x())}},{label:"unique 3DEM maps",run:async()=>{var e,n;const a=await o(u,t);r||(_=Number(null!==(e=null==a||null===(n=a.facets)||void 0===n||null===(n=n[0])||void 0===n?void 0:n.value)&&void 0!==e?e:0),x())}},...M.slice(1)].filter(e=>Boolean(e));let C=D.length;I(!0),U(null),i([]),g([]),E(null),await(async()=>{let e=0;const t=Math.min(n,D.length);if(0===t)return void I(!1);const a=Array.from({length:t},async()=>{for(;!r;){const t=e;e+=1;const n=D[t];if(!n)return;try{await n.run()}catch(e){r||U(t=>{const r="".concat(n.label,": ").concat(b(e));return t?"".concat(t,"; ").concat(r):r})}finally{r||(C-=1,0===C&&I(!1))}}});await Promise.all(a)})()})().catch(e=>{r||(U(b(e)),I(!1))}),()=>{r=!0}},[t,e]),{ligandInfo:a,exptlInfo:f,emCounts:x,holdingsChartData:N,loading:M,error:C}}(3),t=e.ligandInfo,r=e.exptlInfo,a=e.emCounts,i=e.holdingsChartData,h=e.loading,f=e.error,g=e=>encodeURIComponent(JSON.stringify(e||{})),v=Boolean(a),x=(0,n.useMemo)(()=>D(r),[r]),w=(0,n.useMemo)(()=>D(t),[t]),C=Math.max(0,s.length-t.length),U=(R=(0,n.useState)({columnIndex:1,direction:"desc"}),j=2,function(e){if(Array.isArray(e))return e}(R)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,l,o,i=[],s=!0,c=!1;try{if(l=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=l.call(r)).done)&&(i.push(n.value),i.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw a}}return i}}(R,j)||function(e,t){if(e){if("string"==typeof e)return E(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?E(e,t):void 0}}(R,j)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),T=U[0],A=U[1],O=(e,t)=>({type:"terminal",service:"text",parameters:{attribute:e,operator:"exact_match",value:t}}),k=e=>"/search?request=".concat(g((e=>({query:1===e.length?e[0]:{type:"group",logical_operator:"and",nodes:e},return_type:"entry",request_info:{src:"ui",query_id:"stats"}}))(e))),B=e=>{A(t=>t.columnIndex===e?{columnIndex:e,direction:"desc"===t.direction?"asc":"desc"}:{columnIndex:e,direction:"desc"})},P=(0,n.useMemo)(()=>{const e=N.map(e=>{const t=i.map(t=>((e,t)=>{var r,n,a;const l=(null!==(r=null==e||null===(n=e.facets)||void 0===n||null===(n=n[0])||void 0===n?void 0:n.buckets)&&void 0!==r?r:[]).find(e=>e.label===t);return l?Number(null!==(a=l.population)&&void 0!==a?a:0):0})(t,e));return{molecularType:e,rowCounts:t,rowTotal:t.reduce((e,t)=>e+t,0)}}),t=T.columnIndex;return 0===t?[...e].sort((e,t)=>e.molecularType<t.molecularType?"asc"===T.direction?-1:1:e.molecularType>t.molecularType?"asc"===T.direction?1:-1:0):[...e].sort((e,r)=>{var n,a;const l=null!==(n=e.rowCounts[t-1])&&void 0!==n?n:0,o=null!==(a=r.rowCounts[t-1])&&void 0!==a?a:0;return"asc"===T.direction?l-o:o-l})},[i,T]);var R,j;return n.createElement("div",null,n.createElement(q,null,"PDB Data Distribution Summary"),f&&n.createElement("p",{style:{color:"red"}},f),n.createElement("div",{className:"table-responsive"},n.createElement("table",{className:"table table-condensed table-bordered dt-responsive nowrap",cellSpacing:0,width:"100%"},n.createElement("thead",null,n.createElement("tr",{className:"light-gray"},n.createElement("th",{onClick:()=>B(0),style:{cursor:"pointer"}},"Molecular Type",0===T.columnIndex?"desc"===T.direction?" ▼":" ▲":""),i.map((e,t)=>n.createElement("th",{key:t,className:"text-end",onClick:()=>B(t+1),style:{cursor:"pointer"}},e.label,T.columnIndex===t+1?"desc"===T.direction?" ▼":" ▲":"")),n.createElement("th",{className:"fw-bold text-end"},"Total"))),n.createElement("tbody",null,P.map(e=>{return n.createElement("tr",{key:e.molecularType},n.createElement("td",null,e.molecularType),e.rowCounts.map((t,r)=>{return n.createElement("td",{key:"".concat(e.molecularType,"-").concat(r),className:"text-end"},t>0?n.createElement("a",{href:(a=i[r].label,l=e.molecularType,k([O("rcsb_entry_info.experimental_method",a),O("rcsb_entry_info.selected_polymer_entity_types",l)]))},t.toLocaleString("en-US")):0);var a,l}),n.createElement("td",{className:"text-end"},n.createElement("a",{href:(t=e.molecularType,k([O("rcsb_entry_info.selected_polymer_entity_types",t)]))},e.rowTotal.toLocaleString("en-US"))));var t})),n.createElement("tfoot",null,n.createElement("tr",{className:"table-light fw-bold"},n.createElement("th",{scope:"row"},"Total"),i.map((e,t)=>{var r,a;return n.createElement("td",{key:t,className:"text-end"},n.createElement("a",{href:(a=e.label,k([O("rcsb_entry_info.experimental_method",a)]))},Number(null!==(r=e.population)&&void 0!==r?r:0).toLocaleString("en-US")))}),n.createElement("td",{className:"text-end"},i.reduce((e,t)=>{var r;return e+Number(null!==(r=t.population)&&void 0!==r?r:0)},0).toLocaleString("en-US")))))),n.createElement("div",{className:"row",style:{marginTop:"10px"}},n.createElement("div",{className:"col-lg-12 col-md-12 col-sm-12"},n.createElement("p",null,n.createElement("strong",null,"Multiple Methods:")," Atomic structures substantially underpinned by more than one experimental method currently supported by the PDB archive (NMR, 3DEM, or crystallography/diffraction) with or without some additional data provided by currently unsupported methods."),n.createElement("p",null,n.createElement("strong",null,"Integrative Methods:")," Atomic structures with all data coming from currently unsupported methods by the PDB, or only partially underpinned by an experimental method currently supported by the PDB, or partially/entirely non-atomic structures supported by the PDB-IHM."))),n.createElement("div",{className:"row"},n.createElement("div",{className:"col-lg-6 col-md-6 col-sm-12"},n.createElement("h4",null,"PDB Structures with Experimental Data"),n.createElement("div",{className:"list-group"},r&&r.length>0?n.createElement(n.Fragment,null,x.map((e,t)=>n.createElement(S,{key:t},n.createElement(M,{href:"/search?request=".concat("string"==typeof e.searchUrl?e.searchUrl:g(e.searchUrl))},Number(e.population).toLocaleString("en-US")),n.createElement("span",null,e.label))),h&&!v&&n.createElement(I,{count:1})):h?n.createElement(I,null):n.createElement("div",null,"No experimental data counts available."))),n.createElement("div",{className:"col-lg-6 col-md-6 col-sm-12"},n.createElement("h4",null,"PDB Structures with Small Molecule Data"),n.createElement("div",{className:"list-group"},t&&t.length>0?n.createElement(n.Fragment,null,w.map((e,t)=>n.createElement(S,{key:t},n.createElement(M,{href:"/search?request=".concat("string"==typeof e.searchUrl?e.searchUrl:g(e.searchUrl))},Number(e.population).toLocaleString("en-US")),n.createElement("span",null,e.label))),h&&C>0&&n.createElement(I,{count:Math.min(3,C)})):h?n.createElement(I,null):n.createElement("div",null,"No ligand data available.")))))}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_rcsb_rcsb_statistics=self.webpackChunk_rcsb_rcsb_statistics||[]).push([[503],{8354(t,r,e){e.d(r,{A:()=>w});var i=e(1573),a=e.n(i),n=e(9711),o=e(4625),s=e(4987),l=e(3088),c=e(2148),d=e(6503);const h=(0,c.A)("h4");h.displayName="DivStyledAsH4";const k=n.forwardRef(({className:t,bsPrefix:r,as:e=h,...i},n)=>(r=(0,l.oU)(r,"alert-heading"),(0,d.jsx)(e,{ref:n,className:a()(t,r),...i})));k.displayName="AlertHeading";const u=k;var g=e(8820);const x=n.forwardRef(({className:t,bsPrefix:r,as:e=g.A,...i},n)=>(r=(0,l.oU)(r,"alert-link"),(0,d.jsx)(e,{ref:n,className:a()(t,r),...i})));x.displayName="AlertLink";const f=x;var v=e(4716),y=e(3636);const p=n.forwardRef((t,r)=>{const{bsPrefix:e,show:i=!0,closeLabel:n="Close alert",closeVariant:c,className:h,children:k,variant:u="primary",onClose:g,dismissible:x,transition:f=v.A,...p}=(0,o.Zw)(t,{show:"onClose"}),w=(0,l.oU)(e,"alert"),L=(0,s.A)(t=>{g&&g(!1,t)}),m=!0===f?v.A:f,b=(0,d.jsxs)("div",{role:"alert",...m?void 0:p,ref:r,className:a()(h,w,u&&`${w}-${u}`,x&&`${w}-dismissible`),children:[x&&(0,d.jsx)(y.A,{onClick:L,"aria-label":n,variant:c}),k]});return m?(0,d.jsx)(m,{unmountOnExit:!0,...p,ref:void 0,in:i,children:b}):i?b:null});p.displayName="Alert";const w=Object.assign(p,{Link:f,Heading:u})},2917(t,r,e){e.d(r,{A:()=>c});var i=e(1573),a=e.n(i),n=e(9711),o=e(3088),s=e(6503);const l=n.forwardRef(({bsPrefix:t,variant:r,animation:e="border",size:i,as:n="div",className:l,...c},d)=>{const h=`${t=(0,o.oU)(t,"spinner")}-${e}`;return(0,s.jsx)(n,{ref:d,...c,className:a()(l,h,i&&`${h}-${i}`,r&&`text-${r}`)})});l.displayName="Spinner";const c=l},5042(t,r,e){e.d(r,{QPV:()=>l,VSk:()=>n,YrT:()=>d,a4x:()=>c,cO3:()=>s,kGk:()=>o,vQY:()=>h,yGN:()=>a});var i=e(5044);function a(t){return(0,i.k5)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"line",attr:{x1:"18",y1:"6",x2:"6",y2:"18"},child:[]},{tag:"line",attr:{x1:"6",y1:"6",x2:"18",y2:"18"},child:[]}]})(t)}function n(t){return(0,i.k5)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"circle",attr:{cx:"12",cy:"12",r:"3"},child:[]},{tag:"path",attr:{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"},child:[]}]})(t)}function o(t){return(0,i.k5)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"line",attr:{x1:"22",y1:"2",x2:"11",y2:"13"},child:[]},{tag:"polygon",attr:{points:"22 2 15 22 11 13 2 9 22 2"},child:[]}]})(t)}function s(t){return(0,i.k5)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"polyline",attr:{points:"1 4 1 10 7 10"},child:[]},{tag:"path",attr:{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"},child:[]}]})(t)}function l(t){return(0,i.k5)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"rect",attr:{x:"3",y:"3",width:"7",height:"7"},child:[]},{tag:"rect",attr:{x:"14",y:"3",width:"7",height:"7"},child:[]},{tag:"rect",attr:{x:"14",y:"14",width:"7",height:"7"},child:[]},{tag:"rect",attr:{x:"3",y:"14",width:"7",height:"7"},child:[]}]})(t)}function c(t){return(0,i.k5)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"},child:[]},{tag:"polyline",attr:{points:"7 10 12 15 17 10"},child:[]},{tag:"line",attr:{x1:"12",y1:"15",x2:"12",y2:"3"},child:[]}]})(t)}function d(t){return(0,i.k5)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"polyline",attr:{points:"20 6 9 17 4 12"},child:[]}]})(t)}function h(t){return(0,i.k5)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"line",attr:{x1:"18",y1:"20",x2:"18",y2:"10"},child:[]},{tag:"line",attr:{x1:"12",y1:"20",x2:"12",y2:"4"},child:[]},{tag:"line",attr:{x1:"6",y1:"20",x2:"6",y2:"14"},child:[]}]})(t)}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_rcsb_rcsb_statistics=self.webpackChunk_rcsb_rcsb_statistics||[]).push([[646],{7646(e,t,s){s.r(t),s.d(t,{default:()=>c});var a=s(9711);const c=()=>a.createElement("article",{className:"col-12"},a.createElement("h4",null,"PDB Data Snapshot"),a.createElement("div",null,"(data table goes here)"))}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_rcsb_rcsb_statistics=self.webpackChunk_rcsb_rcsb_statistics||[]).push([[690],{6690(e,n,t){t.r(n),t.d(n,{default:()=>l});var r=t(9711),i=t(4233);const a=[{year:2025,legacyArchiveSnapshot:"1583 GB for 246,905 PDB structures",versionedArchive:"298 GB",emdbCoreArchive:"29 TB for 52,944 EMDB entries"},{year:2024,legacyArchiveSnapshot:"1437 GB for 229,564 PDB structures",versionedArchive:"269 GB",emdbCoreArchive:"21 TB for 41,282 EMDB entries"},{year:2023,legacyArchiveSnapshot:"1242 GB for 214,121 PDB structures",versionedArchive:"231 GB",emdbCoreArchive:"13 TB for 32,033 EMDB entries"},{year:2022,legacyArchiveSnapshot:"1086 GB for 199,755 PDB structures",versionedArchive:"218 GB",emdbCoreArchive:"7.5 TB for 25,319 EMDB entries"},{year:2021,legacyArchiveSnapshot:"923 GB for 185,541 PDB structures",versionedArchive:"174 GB",emdbCoreArchive:"4.5 TB for 18,059 EMDB entries"},{year:2020,legacyArchiveSnapshot:"822 GB for 173,005 PDB structures",versionedArchive:"148 GB",emdbCoreArchive:"2.9 TB for 13,731 EMDB entries"},{year:2019,legacyArchiveSnapshot:"577 GB for 159,140 PDB structures",versionedArchive:"117 GB",emdbCoreArchive:"1.7 TB for 10,370 EMDB entries"},{year:2018,legacyArchiveSnapshot:"441 GB for 136,472 PDB structures",versionedArchive:"85 GB",emdbCoreArchive:"592 GB for 5,753 EMDB entries"}],o=[{year:2025,size:"366 TB"},{year:2024,size:"279 TB"},{year:2023,size:"232 TB"},{year:2022,size:"170 TB"},{year:2021,size:"109 TB"}],l=()=>r.createElement("article",{className:"col-12",style:{paddingTop:"22px"}},r.createElement(i.hx,null,"Data Storage Growth"),r.createElement("section",{className:"mb-5","aria-labelledby":"core-archive-holdings-title"},r.createElement("h3",{id:"core-archive-holdings-title",className:"h4"},"PDB Core Archive and Related Holdings (single copy)"),r.createElement("div",{className:"table-responsive"},r.createElement("table",{className:"table table-condensed table-bordered dt-responsive nowrap",cellSpacing:0,width:"100%"},r.createElement("caption",{className:"visually-hidden"},"Annual size of the PDB legacy archive snapshot, the PDB versioned archive, and the EMDB Core Archive."),r.createElement("thead",null,r.createElement("tr",{className:"light-gray"},r.createElement("th",{scope:"col"},"Year"),r.createElement("th",{scope:"col"},"Size of PDB legacy archive snapshot"),r.createElement("th",{scope:"col"},"Size of PDB versioned archive"),r.createElement("th",{scope:"col"},"Size of EMDB Core Archive"))),r.createElement("tbody",null,a.map(e=>r.createElement("tr",{key:e.year},r.createElement("td",null,e.year),r.createElement("td",null,e.legacyArchiveSnapshot),r.createElement("td",null,e.versionedArchive),r.createElement("td",null,e.emdbCoreArchive))))))),r.createElement("section",{"aria-labelledby":"total-storage-holdings-title"},r.createElement("h3",{id:"total-storage-holdings-title",className:"h4"},"Total Storage for RCSB PDB Holdings"),r.createElement("p",null,"All copies of the PDB Core Archive, including AWS, EMDB Core Archive RCSB PDB OneDep sessions, RCSB.org, PDB101.RCSB.org."),r.createElement("div",{className:"table-responsive"},r.createElement("table",{className:"table table-condensed table-bordered dt-responsive nowrap",cellSpacing:0,width:"100%"},r.createElement("caption",{className:"visually-hidden"},"Annual total size of all RCSB PDB storage holdings."),r.createElement("thead",null,r.createElement("tr",{className:"light-gray"},r.createElement("th",{scope:"col"},"Year"),r.createElement("th",{scope:"col"},"Size"))),r.createElement("tbody",null,o.map(e=>r.createElement("tr",{key:e.year},r.createElement("td",null,e.year),r.createElement("td",null,e.size))))))))},4233(e,n,t){t.d(n,{C:()=>ne,G:()=>_,Gw:()=>J,Kb:()=>M,MV:()=>F,NF:()=>U,Nk:()=>H,OV:()=>R,Q3:()=>j,RZ:()=>X,Tu:()=>O,VT:()=>V,Yg:()=>q,at:()=>Q,hf:()=>ie,hx:()=>K,ne:()=>L,ou:()=>W,ph:()=>Z,rI:()=>te,rh:()=>I,tJ:()=>re,tf:()=>ee,tt:()=>$,vE:()=>Y});var r,i,a,o,l,s,c,d,p,h,m,f,g,b,v,y,u,x,A,B,E,D,w,z,C,S,k,P=t(376),N=t(4654);function G(e,n){return n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}const T=(0,P.i7)(r||(r=G(["\n from {\n opacity: .5;\n transform: translateZ(0) scale(0.999);\n }\n to {\n opacity: 1;\n transform: translateZ(0) scale(1);\n }\n"]))),$=P.Ay.div(i||(i=G(["\n animation: "," .5s ease-in;\n will-change: opacity, transform;\n"])),T),M=P.Ay.div(a||(a=G([" \n display: flex;\n justify-content: flex-end;\n margin-top: -10px;\n"]))),j=P.Ay.div.attrs(()=>({as:"div"}))(o||(o=G(["\n margin-top: 35px;\n padding-top: 10px;\n border-top: 1px solid #ccc;\n margin-right: 200px;\n"]))),R=P.Ay.button(l||(l=G(["\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #e7e7e7;\n border-radius: 3px;\n padding: 3px 5px;\n\n & svg { \n margin-right: 5px; \n }\n"]))),H=P.Ay.div(s||(s=G(["\n padding-left: 25px;\n margin-top: 60px;\n"]))),_=(0,P.Ay)(N.A)(c||(c=G(["\n margin-top: 60px;\n"]))),O=P.Ay.div(d||(d=G(["\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 5px;\n"]))),Y=P.Ay.div(p||(p=G(["\n background-color: #f0f0f0;\n border: ",";\n padding: 5px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ",";\n filter: ",";\n\n ","\n"])),e=>e.selected?"1px solid black":"1px solid #fff",e=>e.disabled?"#bbb":"#606060",e=>e.disabled?"grayscale(30%) blur(0.5px)":"none",e=>!e.disabled&&"\n &:hover {\n background-color: #e0e0e0;\n border: 1px solid #808080;\n cursor: pointer;\n }\n "),V=P.Ay.div(h||(h=G(["\n display: flex;\n align-items: center;\n margin-bottom: 5px;\n min-width: 170px;\n"]))),Z=P.Ay.input(m||(m=G(["\n margin-right: 20px;\n"]))),J=P.Ay.label(f||(f=G(["\n font-size: 12px;\n margin-left: 5px;\n font-weight: normal;\n margin-bottom: 0 !important;\n"]))),F=P.Ay.div(g||(g=G(["\n font-weight: bold;\n font-size: 1.2em;\n margin-bottom: 15px;\n"]))),I=P.Ay.div(b||(b=G(["\n width: auto;\n height: auto;\n min-height: ",";\n margin-bottom: 70px;\n margin-left: -15px;\n"])),e=>e.$isTable?"0":"550px"),K=P.Ay.h1(v||(v=G(["\n display: block;\n margin: 0;\n padding: 0 0 29px;\n font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\n font-size: 18px;\n font-weight: bold;\n color: #333;\n text-align: start;\n"]))),Q=P.Ay.div(y||(y=G(["\n position: relative;\n height: ",";\n"])),e=>{let n=e.$isTable,t=e.$fullscreen;return n?"auto":t?"calc(100% - 62px)":"calc(550px - 62px)"}),U=P.Ay.div(u||(u=G(["\n margin-top: 20px;\n min-width: 170px;\n label {\n font-size: 12px;\n font-weight: normal;\n margin-left: 5px;\n margin-bottom: 0 !important;\n margin-top: 4px !important;\n }\n .form-check {\n display: flex;\n align-items: center;\n }\n"]))),W=P.Ay.div(x||(x=G(["\n margin-bottom: 35px;\n"]))),q=P.Ay.div(A||(A=G(["\n font-weight: bold;\n margin-bottom: 5px;\n"]))),L=(P.Ay.div(B||(B=G(["\n width: 100%;\n\n\n .col-md-10{\n width: 90% !important;\n }\n\n .col-md-10 > div:first-child {\n height: 80vh !important;\n }\n\n .col-md-2{\n width: 0 !important;\n }\n"]))),P.Ay.div(E||(E=G(["\n display: block;\n font-size: 18px;\n font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;\n font-weight: bold;\n color: #333;\n padding-top: 0;\n padding-bottom: 15px;\n text-align: start;\n margin-top: -2px;\n"])))),X=P.Ay.div(D||(D=G(["\n position: relative;\n display: inline-block;\n cursor: pointer;\n\n &:hover ul {\n display: block;\n top:-5px;\n margin-left:15px\n }\n"]))),ee=P.Ay.div(w||(w=G(["\n position: relative;\n display: inline-block;\n cursor: ",";\n opacity: ",";\n pointer-events: ",";\n filter: ",";\n color: ",";\n\n &:hover ul {\n display: ",";\n top: -5px;\n margin-left: 15px;\n }\n"])),e=>e.disabled?"not-allowed":"pointer",e=>e.disabled?.4:1,e=>e.disabled?"none":"auto",e=>e.disabled?"grayscale(30%) blur(0.5px)":"none",e=>e.disabled?"#bbb":"inherit",e=>e.disabled?"none":"block"),ne=P.Ay.div(z||(z=G(["\n display: flex;\n align-items: center;\n cursor: pointer;\n position: relative;\n\n .triangle {\n width: 8px;\n aspect-ratio: 1;\n clip-path: polygon(0 0, 100% 0, 50% 70%);\n background-color: #999;\n position: absolute;\n right: -9px;\n top: 50%;\n transform: translateY(-10%);\n transition: transform 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n }\n\n &:hover .triangle {\n transform: translateY(0.2rem);\n }\n"]))),te=P.Ay.ul(C||(C=G(["\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n min-width: 160px;\n padding: 2px 0;\n margin: 0;\n font-size: 14px;\n color: #333;\n text-align: left;\n list-style: none;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n\n ",":hover & {\n display: block;\n }\n\n & > li.disabled {\n pointer-events: none;\n color: #ccc;\n }\n\n & > li:not(.disabled):hover {\n background-color: #f8f9fa;\n }\n"])),X),re=P.Ay.li(S||(S=G(["\n padding: 8px 20px;\n display: flex;\n align-items: center;\n cursor: pointer;\n white-space: nowrap;\n\n &:hover {\n background-color: #f1f1f1;\n }\n"]))),ie=P.Ay.span(k||(k=G(["\n margin-left: 8px;\n font-size: 14px;\n color: #333;\n margin-right: 5px;\n"])))},4654(e,n,t){t.d(n,{A:()=>c});var r=t(1573),i=t.n(r),a=t(9711),o=t(3088),l=t(6503);const s=a.forwardRef((e,n)=>{const[{className:t,...r},{as:a="div",bsPrefix:s,spans:c}]=function({as:e,bsPrefix:n,className:t,...r}){n=(0,o.oU)(n,"col");const a=(0,o.gy)(),l=(0,o.Jm)(),s=[],c=[];return a.forEach(e=>{const t=r[e];let i,a,o;delete r[e],"object"==typeof t&&null!=t?({span:i,offset:a,order:o}=t):i=t;const d=e!==l?`-${e}`:"";i&&s.push(!0===i?`${n}${d}`:`${n}${d}-${i}`),null!=o&&c.push(`order${d}-${o}`),null!=a&&c.push(`offset${d}-${a}`)}),[{...r,className:i()(t,...s,...c)},{as:e,bsPrefix:n,spans:s}]}(e);return(0,l.jsx)(a,{...r,ref:n,className:i()(t,!c.length&&s)})});s.displayName="Col";const c=s}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_rcsb_rcsb_statistics=self.webpackChunk_rcsb_rcsb_statistics||[]).push([[732],{3732(e,s,t){t.r(s),t.d(s,{default:()=>a});var c=t(9711);const a=()=>c.createElement("article",{className:"col-12"},c.createElement("h4",null,"Other Statistics"),c.createElement("div",null,"coming soon"))}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_rcsb_rcsb_statistics=self.webpackChunk_rcsb_rcsb_statistics||[]).push([[81],{8596(e,t,r){function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function i(e,t,r){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const o=r(3482),l=e=>Boolean(e&&"object"==typeof e&&!Array.isArray(e)),s=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),c=e=>{throw new Error(e)};function u(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"Chart";if(t.$ref)return u(e,r.$defs[t.$ref.split("/").pop()],r,n);if(t.anyOf)return void(t.anyOf.some(t=>{try{return u(e,t,r,n),!0}catch(e){return!1}})||c("".concat(n," has an invalid value.")));const a=t.type;("object"===a&&!l(e)||"array"===a&&!Array.isArray(e)||"integer"===a&&!Number.isInteger(e)||"number"===a&&("number"!=typeof e||!Number.isFinite(e))||"string"===a&&"string"!=typeof e||"boolean"===a&&"boolean"!=typeof e)&&c("".concat(n," must be ").concat(a,".")),t.enum&&!t.enum.includes(e)&&c("".concat(n," is not supported.")),"number"==typeof e&&(void 0!==t.minimum&&e<t.minimum||void 0!==t.maximum&&e>t.maximum)&&c("".concat(n," is outside the supported range.")),"string"==typeof e&&(t.minLength&&e.trim().length<t.minLength||t.maxLength&&e.length>t.maxLength||/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/.test(e))&&c("".concat(n," has invalid text.")),Array.isArray(e)&&((t.minItems&&e.length<t.minItems||t.maxItems&&e.length>t.maxItems||t.uniqueItems&&new Set(e.map(e=>JSON.stringify(e))).size!==e.length)&&c("".concat(n," has an invalid number of items.")),e.forEach((e,a)=>u(e,t.items,r,"".concat(n,"[").concat(a,"]")))),l(e)&&((t.required||[]).forEach(t=>{s(e,t)||c("".concat(n,".").concat(t," is required."))}),Object.keys(e).forEach(a=>{s(t.properties||{},a)?u(e[a],t.properties[a],r,"".concat(n,".").concat(a)):!1===t.additionalProperties&&c("".concat(n,".").concat(a," is not supported."))}))}function m(e){u(e,o.specSchema);const t=JSON.parse(JSON.stringify(e)),r=o.dimensions[t.dimension];return"line"!==t.chartType||r.ordered&&"vertical"===t.orientation&&"labelAsc"===t.sort||c("Line charts require release year or resolution, vertical orientation, and ascending labels."),"pie"===t.chartType&&(r.overlapping||1!==t.series.length||t.cumulative||"linear"!==t.scale)&&c("Pie charts require a single non-overlapping series (release year or methodology), linear scale, and non-cumulative values."),!t.cumulative||"releaseYear"===t.dimension&&"labelAsc"===t.sort||c("Cumulative charts require release year in chronological order."),"percent"===t.measure&&"linear"!==t.scale&&c("Percentages require a linear scale."),new Set(t.series.map(e=>e.label)).size!==t.series.length&&c("Give each comparison series a different label."),[t.filters,...t.series.map(e=>e.filters)].forEach(e=>e.forEach(e=>{const t=o.filters[e.field];t.operators.includes(e.operator)||c("Unsupported operator for ".concat(t.label,".")),"in"===e.operator?(Array.isArray(e.value)||c("".concat(t.label," requires a list.")),e.value.forEach(e=>{"taxonomy"===t.kind?(!Number.isInteger(e)||e<=0)&&c("Taxonomy IDs must be positive integers."):("string"!=typeof e||t.values&&!t.values.includes(e)||"identifier"===t.kind&&!/^[A-Z0-9]{1,10}$/.test(e))&&c("Invalid value for ".concat(t.label,"."))})):("number"!=typeof e.value||e.value<t.minimum||e.value>t.maximum||"year"===t.kind&&!Number.isInteger(e.value))&&c("Invalid range for ".concat(t.label,"."))})),t.series.forEach(e=>{const r=[...t.filters,...e.filters];["releaseYear","resolution"].forEach(e=>{const t=r.filter(t=>t.field===e&&"gte"===t.operator).map(e=>e.value),n=r.filter(t=>t.field===e&&"lte"===t.operator).map(e=>e.value);t.length&&n.length&&Math.max(...t)>Math.min(...n)&&c("The ".concat(e," lower bound exceeds its upper bound."))}),"integrativeInput"===t.dimension&&r.some(e=>"methodology"===e.field&&!e.value.includes("integrative"))&&c("Integrative input charts cannot exclude integrative structures.")}),t}function p(e){const t=o.filters[e.field];let r=e.value;return"year"===t.kind&&(r="".concat(r,"-").concat("gte"===e.operator?"01-01":"12-31")),{type:"terminal",service:"text",parameters:{attribute:t.attribute,operator:{in:"in",gte:"greater_or_equal",lte:"less_or_equal"}[e.operator],value:r}}}function d(e){const t=new Set;return e.flatMap(r=>{const n=o.filters[r.field];if(!["number","year"].includes(n.kind))return[p(r)];if(t.has(r.field))return[];t.add(r.field);const i=e.filter(e=>e.field===r.field),l=i.filter(e=>"gte"===e.operator).map(e=>e.value),s=i.filter(e=>"lte"===e.operator).map(e=>e.value);if(!l.length||!s.length)return[p(a(a({},r),{},{operator:l.length?"gte":"lte",value:l.length?Math.max(...l):Math.min(...s)}))];const c=Math.max(...l),u=Math.min(...s);return[{type:"terminal",service:"text",parameters:{attribute:n.attribute,operator:"range",value:{from:"year"===n.kind?"".concat(c,"-01-01"):c,to:"year"===n.kind?"".concat(u,"-12-31"):u,include_lower:!0,include_upper:!0}}}]})}function h(e){return"".concat(o.filters[e.field].label," ").concat("in"===e.operator?"is any of":"gte"===e.operator?"≥":"≤"," ").concat(Array.isArray(e.value)?e.value.join(", "):e.value)}function g(e){const t=[];return o.dimensions[e.dimension].overlapping&&t.push("An entry may occur in more than one category. Bucket counts must not be summed as a unique entry total."),e.series.length>1&&t.push("Comparison cohorts may overlap; each is counted independently."),"sourceOrganism"===e.dimension&&t.push("Source organisms are those recorded for any matching entry; they are not expression hosts. All source types are included."),"releaseYear"===e.dimension&&t.push("Counts describe the current archive by initial release year, not historical archive snapshots. The current year is incomplete."),e.cumulative&&t.push("Cumulative values begin at the earliest year included by the filters."),"logarithmic"===e.scale&&t.push("Zero values are omitted from the logarithmic chart; the table retains them."),"percent"===e.measure&&t.push("The denominator is every matching entry in that series, including entries missing the chart attribute."),t}e.exports={catalog:o,validateSchema:u,validateChartSpec:m,buildChartRequests:function(e){const t=m(e),r=o.dimensions[t.dimension],n={name:"chart",aggregation_type:r.aggregation,attribute:r.attribute,min_interval_population:1};return"terms"===r.aggregation&&(n.max_num_intervals=1e3),"date_histogram"===r.aggregation&&(n.interval="year"),"histogram"===r.aggregation&&(n.interval=t.interval),t.series.map(e=>{const a=[...t.filters,...e.filters,...r.requiredFilter?[r.requiredFilter]:[]],i={return_type:"entry",request_options:{results_content_type:["experimental"],paginate:{start:0,rows:0},facets:[n]}};return a.length&&(i.query={type:"group",logical_operator:"and",nodes:d(a).map(e=>({type:"group",logical_operator:"and",nodes:[e]}))}),i})},describeFilter:h,describeChart:function(e){return m(e),"".concat(e.cumulative?"Cumulative ":"").concat("count"===e.measure?"PDB entry counts":"Percentage of matching PDB entries"," by ").concat(o.dimensions[e.dimension].label.toLowerCase(),"; ").concat(e.chartType," chart; ").concat(e.series.length," ").concat(1===e.series.length?"series":"comparison series",".")},chartWarnings:g,chartChanges:function(e,t){return e?(m(e),Object.keys(t).filter(r=>JSON.stringify(e[r])!==JSON.stringify(t[r])).map(r=>"filters"===r?"Filters: ".concat(t.filters.length?t.filters.map(h).join("; "):"none","."):"series"===r?"Series: ".concat(t.series.map(e=>"".concat(e.label).concat(e.filters.length?" (".concat(e.filters.map(h).join("; "),")"):"")).join("; "),"."):"".concat(r,": ").concat(String(e[r])," → ").concat(String(t[r])))):["Create a new chart."]},formatChartData:function(e,t){const r=m(e);Array.isArray(t)&&t.length===r.series.length||c("A response is required for every chart series.");const n=o.dimensions[r.dimension];let i=!1;const s=t.map((e,t)=>{var n;(!l(e)||!Number.isInteger(e.total_count)||e.total_count<0)&&c("The Search API did not return a valid entry count.");const a=null===(n=e.facets)||void 0===n||null===(n=n.find(e=>"chart"===e.name))||void 0===n?void 0:n.buckets;Array.isArray(a)||0===e.total_count||c("The Search API did not return the requested chart aggregation."),(a||[]).length>=1e3&&(i=!0);const o=new Map;return(a||[]).forEach(t=>{(!Number.isInteger(t.population)||t.population<0||t.population>e.total_count||!["string","number"].includes(typeof t.label)||String(t.label).length>300)&&c("The Search API returned an invalid chart bucket.");let n=String(t.label);if("releaseYear"===r.dimension){const e=n.match(/\d{4}/);e||c("The Search API returned an invalid release year."),n=e[0]}"resolution"===r.dimension&&((!Number.isFinite(Number(n))||Number(n)<0)&&c("The Search API returned an invalid resolution interval."),n=String(Number(Number(n).toPrecision(12)))),o.has(n)&&c("The Search API returned duplicate chart buckets."),o.set(n,t.population)}),{label:r.series[t].label,total:e.total_count,values:o}});let u=[...new Set(s.flatMap(e=>[...e.values.keys()]))];const p=u.every(e=>Number.isFinite(Number(e)));if(u.sort((e,t)=>p?Number(e)-Number(t):e.localeCompare(t)),"releaseYear"===r.dimension&&u.length){const e=Number(u[0]),t=Number(u[u.length-1]);t-e>200&&c("The Search API returned an unsupported year range."),u=Array.from({length:t-e+1},(t,r)=>String(e+r))}if("resolution"===r.dimension&&u.length){const e=Number(u[0]),t=Math.round((Number(u[u.length-1])-e)/r.interval)+1;t>1e3&&c("This resolution histogram exceeds 1,000 bins. Increase the bin width or narrow the resolution range."),u=Array.from({length:t},(t,n)=>String(Number((e+n*r.interval).toPrecision(12))))}const d=u.map(e=>({label:e,counts:s.map(t=>t.values.get(e)||0)}));if(r.cumulative){const e=s.map(()=>0);d.forEach(t=>{t.counts=t.counts.map((t,r)=>e[r]+=t)})}"countDesc"===r.sort&&d.sort((e,t)=>t.counts.reduce((e,t)=>e+t,0)-e.counts.reduce((e,t)=>e+t,0)||e.label.localeCompare(t.label));const h=!n.ordered,y=(h?d.slice(0,r.topN):d).map(e=>a(a({},e),{},{values:e.counts.map((e,t)=>"percent"===r.measure?s[t].total?100*e/s[t].total:0:e)})),f=g(r);return h&&d.length>y.length&&f.push("Showing ".concat(y.length," of ").concat(d.length).concat(i?"+":""," categories returned. Omitted categories are not combined into an invented “Other” count.")),i&&f.push("The category aggregation reached its 1,000-bucket limit. Narrow the filters for a more complete category listing."),"pie"!==r.chartType||!i&&y.length===d.length||c("A pie chart must show all categories. Increase the category limit or use a bar chart."),"pie"===r.chartType&&y.reduce((e,t)=>e+t.counts[0],0)!==s[0].total&&c("A pie chart requires complete, non-overlapping categories covering every matching entry. Use a bar chart for this population."),{rows:y,series:s.map(e=>({label:e.label,total:e.total})),warnings:f,retrievedAt:(new Date).toISOString(),categoryCount:d.length}}}},8081(e,t,r){"use strict";r.r(t),r.d(t,{default:()=>R});var n=r(9711),a=r(4062),i=r(8354),o=r(2917),l=r(5411),s=r(5042);const c=s.YrT,u=s.cO3,m=s.kGk,p=s.VSk,d=s.yGN,h=s.a4x,g=s.QPV,y=s.vQY;var f=r(9281),b=r(8596);function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach(function(t){w(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function w(e,t,r){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const A=e=>{const t=String(e);return'"'.concat((/^[\s]*[=+@-]|^[\t\r\n]/.test(t)?"'".concat(t):t).replace(/"/g,'""'),'"')};function S(e,t,r){const n=URL.createObjectURL(new Blob([e],{type:r})),a=document.createElement("a");a.href=n,a.download=t,a.click(),setTimeout(()=>URL.revokeObjectURL(n),0)}var O=r(8804),N=r(6619);function P(e,t,r){const n=[];let a="";for(const i of t.split(/\s+/)){const t=a?"".concat(a," ").concat(i):i;for(a&&e.measureText(t).width>r?(n.push(a),a=i):a=t;e.measureText(a).width>r&&a.length>1;){let t=a.length-1;for(;t>1&&e.measureText(a.slice(0,t)).width>r;)t--;n.push(a.slice(0,t)),a=a.slice(t)}}return a.trim()&&n.push(a.trim()),n}function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function C(e,t,r){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function I(e){let t=e.spec,r=e.data,i=e.preview,o=void 0!==i&&i;const l=(0,f.t)().settings,s=(0,n.useRef)(null),c=(k=(0,n.useState)(!1),j=2,function(e){if(Array.isArray(e))return e}(k)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,o,l=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(k,j)||function(e,t){if(e){if("string"==typeof e)return _(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_(e,t):void 0}}(k,j)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=c[0],m=c[1],p=l.colorScheme,d=t.categoryLabel||b.catalog.dimensions[t.dimension].label,v=t.valueLabel||("percent"===t.measure?"Matching PDB entries (%)":"Number of PDB entries"),E="bar"===t.chartType&&"horizontal"===t.orientation,w={labels:r.rows.map(e=>"resolution"===t.dimension?"".concat(e.label,"–").concat(Number((Number(e.label)+t.interval).toFixed(3))," Å"):e.label),datasets:r.series.map((e,n)=>({label:e.label,data:r.rows.map(e=>"logarithmic"===t.scale&&0===e.values[n]?null:e.values[n]),backgroundColor:"pie"===t.chartType?r.rows.map((e,t)=>p[t%p.length]):p[n%p.length],borderColor:p[n%p.length],borderWidth:"line"===t.chartType?2:1,pointRadius:r.rows.length>40?1:3,tension:.15}))},N=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?x(Object(r),!0).forEach(function(t){C(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):x(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({responsive:!0,maintainAspectRatio:!1,animation:!1,indexAxis:E?"y":"x",plugins:{legend:{display:"pie"===t.chartType||r.series.length>1,position:"bottom"},tooltip:{callbacks:{label:e=>"".concat(e.dataset.label,": ").concat(Number(e.raw).toLocaleString(void 0,{maximumFractionDigits:2})).concat("percent"===t.measure?"%":" entries")}}}},"pie"===t.chartType?{}:{scales:{[E?"x":"y"]:{type:t.scale,beginAtZero:"linear"===t.scale,title:{display:!0,text:v}},[E?"y":"x"]:{type:"category",title:{display:!0,text:d},ticks:{autoSkip:!E,maxRotation:55}}}}),I="line"===t.chartType?O.N1:"pie"===t.chartType?O.Fq:O.yP;var k,j;return n.createElement("section",{className:"ai-chart-result".concat(o?" ai-chart-preview":""),"aria-label":o?"Proposed chart preview":"Applied chart"},n.createElement("div",{className:"ai-chart-result-heading"},n.createElement("div",null,n.createElement("div",{className:"ai-chart-eyebrow"},o?"Proposed chart · not yet applied":"Applied chart"),n.createElement("h2",null,t.title)),n.createElement(a.A,{size:"sm",variant:"outline-secondary",onClick:()=>m(!u)},u?n.createElement(y,null):n.createElement(g,null)," ",u?"Chart":"Data table")),n.createElement("div",{className:"ai-chart-totals"},r.series.map(e=>n.createElement("span",{key:e.label},n.createElement("strong",null,e.total.toLocaleString())," matching entries · ",e.label))),r.rows.length?u?n.createElement("div",{className:"ai-chart-table"},n.createElement("table",{className:"table table-striped table-sm"},n.createElement("caption",null,"Live PDB entry counts. ","percent"===t.measure?"Percentages use each series total as the denominator.":""),n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",{scope:"col"},d),r.series.map(e=>n.createElement("th",{scope:"col",key:e.label},e.label)))),n.createElement("tbody",null,r.rows.map(e=>n.createElement("tr",{key:e.label},n.createElement("th",{scope:"row"},e.label),e.values.map((r,a)=>n.createElement("td",{key:a},r.toLocaleString(void 0,{maximumFractionDigits:2}),"percent"===t.measure?"% (".concat(e.counts[a].toLocaleString()," entries)"):""))))))):n.createElement("div",{style:{height:E?Math.min(900,Math.max(340,25*r.rows.length+100)):400}},n.createElement(I,{ref:s,data:w,options:N})):n.createElement("div",{className:"ai-chart-empty"},"No entries have chart values for these filters. Refine the request to broaden the population."),n.createElement("div",{className:"ai-chart-export-row"},n.createElement(a.A,{size:"sm",variant:"outline-secondary",onClick:()=>S(function(e,t){return[[e.categoryLabel||"Category",...t.series.flatMap(t=>["".concat(t.label,": entry count"),..."percent"===e.measure?["".concat(t.label,": percent of ").concat(t.total," matching entries")]:[]])],...t.rows.map(t=>[t.label,...t.counts.flatMap((r,n)=>[r,..."percent"===e.measure?[t.values[n]]:[]])])].map(e=>e.map(A).join(",")).join("\r\n")}(t,r),"pdb-chart-data.csv","text/csv;charset=utf-8")},n.createElement(h,null)," CSV"),n.createElement(a.A,{size:"sm",variant:"outline-secondary",onClick:()=>S(JSON.stringify({chart:t,data:r,searchRequests:(0,b.buildChartRequests)(t)},null,2),"pdb-chart.json","application/json")},n.createElement(h,null)," Chart + data JSON"),!u&&r.rows.length>0&&n.createElement(a.A,{size:"sm",variant:"outline-secondary",onClick:()=>{if(!s.current)return;const e=document.createElement("a");e.href=function(e,t,r){const n=document.createElement("canvas"),a=n.getContext("2d");if(!a)throw new Error("PNG export is not supported in this browser.");const i=e.width/(e.clientWidth||e.width),o=Math.round(20*i),l=Math.max(e.width,Math.round(400*i)),s=l-2*o;a.font="600 ".concat(18*i,"px sans-serif");const c=P(a,t.title,s);a.font="".concat(11*i,"px sans-serif");const u=P(a,"Source: RCSB PDB Search API · Retrieved ".concat(new Date(r.retrievedAt).toISOString().slice(0,10)," · Released PDB entries only."),s),m=25*c.length*i,p=16*u.length*i;n.width=l,n.height=Math.ceil(e.height+m+p+4*o),a.fillStyle="#ffffff",a.fillRect(0,0,n.width,n.height),a.fillStyle="#243746",a.font="600 ".concat(18*i,"px sans-serif"),a.textBaseline="top",c.forEach((e,t)=>a.fillText(e,o,o+25*t*i));const d=2*o+m;return a.drawImage(e,(l-e.width)/2,d),a.fillStyle="#526675",a.font="".concat(11*i,"px sans-serif"),u.forEach((t,r)=>a.fillText(t,o,d+e.height+o+16*r*i)),n.toDataURL("image/png",1)}(s.current.canvas,t,r),e.download="pdb-chart.png",e.click()}},n.createElement(h,null)," PNG"),n.createElement("span",null,"Retrieved ",new Date(r.retrievedAt).toLocaleString())),n.createElement("details",{className:"ai-chart-provenance"},n.createElement("summary",null,"Data source, filters, and counting rules"),n.createElement("p",null,"Live ",n.createElement("a",{href:"https://search.rcsb.org/#faceted-queries",target:"_blank",rel:"noopener noreferrer"},"RCSB PDB Search API"),". Released PDB entries only; computed models excluded. Missing attribute values are not a category."),n.createElement("p",null,t.filters.length?t.filters.map(b.describeFilter).join("; "):"No population filters."),t.series.map(e=>n.createElement("p",{key:e.label},n.createElement("strong",null,e.label,":")," ",e.filters.length?e.filters.map(b.describeFilter).join("; "):"No additional cohort filters.")),r.warnings.length>0&&n.createElement("ul",null,r.warnings.map(e=>n.createElement("li",{key:e},e))),n.createElement("details",null,n.createElement("summary",null,"Reproducible Search API requests"),n.createElement("pre",null,JSON.stringify((0,b.buildChartRequests)(t),null,2)))))}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,o,l=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return j(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?j(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}N.t1.register(N.PP,N.kc,N.OJ,N.E8,N.No,N.Bs,N.FN,N.m_,N.s$);const T=[{title:"Follow an archive trend",prompt:"Compare annual releases of X-ray and electron microscopy structures since 2015 as a line chart."},{title:"Investigate integrative structures",prompt:"Chart the input data types used in integrative PDB structures."}];function R(){const e=function(e){const t=e.aiCommands||("undefined"!=typeof window?window.__RCSB_AI_COMMANDS__:void 0);return t&&"function"==typeof t.execute&&"function"==typeof t.getStatus?t:void 0}((0,f.t)().settings.config),t=k((0,n.useState)(null),2),r=t[0],s=t[1],h=k((0,n.useState)([]),2),g=h[0],y=h[1],v=k((0,n.useState)(""),2),w=v[0],A=v[1],S=k((0,n.useState)(null),2),O=S[0],N=S[1],P=k((0,n.useState)(null),2),x=P[0],C=P[1],_=k((0,n.useState)([]),2),j=_[0],R=_[1],D=k((0,n.useState)(!1),2),q=D[0],L=D[1],F=k((0,n.useState)("Interpreting your chart request…"),2),B=F[0],M=F[1],Y=k((0,n.useState)(""),2),U=Y[0],z=Y[1],$=(0,n.useRef)(null),J=(0,n.useRef)(0),G=(0,n.useRef)(null),V=(0,n.useRef)(null),W=(0,n.useRef)(null);(0,n.useEffect)(()=>{var t;let r=!0;const n=e=>{if(!r)return;const t=JSON.stringify([e.connected,e.provider,e.model,e.connectionId]);var n;null!==W.current&&t!==W.current&&(J.current+=1,null===(n=$.current)||void 0===n||n.abort(),$.current=null,L(!1),N(null),R([]),z(e.connected?"Your AI connection or model changed. Prepare a new preview before applying it.":"Reconnect your AI provider in AI Settings. Your applied chart has not changed.")),W.current=t,s(e)},a=()=>null==e?void 0:e.getStatus().then(n).catch(()=>n({connected:!1})),i=null==e||null===(t=e.subscribe)||void 0===t?void 0:t.call(e,n);return a(),window.addEventListener("focus",a),()=>{var e;r=!1,null==i||i(),window.removeEventListener("focus",a),J.current+=1,null===(e=$.current)||void 0===e||e.abort()}},[e]),(0,n.useEffect)(()=>{var e,t;null===(e=G.current)||void 0===e||null===(t=e.scrollTo)||void 0===t||t.call(e,{top:g.length?G.current.scrollHeight:0,behavior:g.length?"smooth":"auto"})},[g,q,j]);const Q=async function(){const t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:w).trim();if(!t||t.length>4e3||q||$.current||!e||null==r||!r.connected)return;const n=++J.current,a=new AbortController;$.current=a;const i=[...g,{role:"user",content:t}].slice(-15);y(i),A(""),R([]),z(""),L(!0),M("Interpreting your chart request…");try{const t=function(e){var t,r;if(!e||!e.ok||!["ready","clarification"].includes(e.status)||"string"!=typeof e.message)throw new Error("The AI service returned an incomplete chart response. Your current chart has not changed.");if("clarification"===e.status){if(!Array.isArray(e.questions)||e.questions.length>4||e.questions.some(e=>"string"!=typeof e.question||e.options&&(!Array.isArray(e.options)||e.options.length>8||e.options.some(e=>"string"!=typeof e))))throw new Error("The AI service returned an invalid clarification. Please rephrase your request.");return e}if("configureChart"!==(null===(t=e.command)||void 0===t?void 0:t.action))throw new Error("The AI service returned an unsupported command.");const n=(0,b.validateChartSpec)(e.command.spec),a=null===(r=e.preview)||void 0===r?void 0:r.chartData;if(!a||!Array.isArray(a.rows)||a.rows.length>1e3||!Array.isArray(a.series)||a.series.length!==n.series.length||!Array.isArray(a.warnings)||a.warnings.length>20||a.warnings.some(e=>"string"!=typeof e||e.length>1e3)||!Number.isInteger(a.categoryCount)||a.categoryCount<a.rows.length||!Number.isFinite(Date.parse(a.retrievedAt)))throw new Error("Live chart data was not returned. Your current chart has not changed.");if(a.series.some((e,t)=>e.label!==n.series[t].label||!Number.isInteger(e.total)||e.total<0)||a.rows.some(e=>"string"!=typeof e.label||!Array.isArray(e.counts)||e.counts.length!==a.series.length||!Array.isArray(e.values)||e.values.length!==a.series.length||e.counts.some(e=>!Number.isInteger(e)||e<0)||e.values.some(e=>!Number.isFinite(e)||e<0)))throw new Error("Live chart data did not pass validation. Your current chart has not changed.");if(new Set(a.rows.map(e=>e.label)).size!==a.rows.length||a.rows.some(e=>e.counts.some((t,r)=>t>a.series[r].total||Math.abs(e.values[r]-("percent"===n.measure?a.series[r].total?100*t/a.series[r].total:0:t))>1e-6)))throw new Error("Chart values do not match the validated entry counts.");return E(E({},e),{},{command:{action:"configureChart",spec:n}})}(await e.execute({action:"configureChart",messages:i,context:{currentChart:(null==x?void 0:x.command.spec)||null,pendingChart:(null==O?void 0:O.command.spec)||null},previousCommand:(null==O?void 0:O.command)||(null==x?void 0:x.command)||null},{signal:a.signal,onProgress:e=>{if(n!==J.current||a.signal.aborted)return;const t={planning:"Interpreting your chart request…",lookup:"Looking up PDB metadata…",building:"Preparing the chart specification…",validating:"Validating the chart and loading live PDB counts…"};t[e]&&M(t[e])}}));if(n!==J.current||a.signal.aborted)return;y([...i,{role:"assistant",content:t.message}]),R(t.questions||[]),"ready"===t.status&&N({command:t.command,data:t.preview.chartData,preview:t.preview})}catch(e){if(n!==J.current||a.signal.aborted)return;z(e instanceof Error?e.message:"The chart could not be prepared. Your current chart has not changed.")}finally{n===J.current&&(L(!1),$.current=null)}},X=()=>{var e;J.current+=1,null===(e=$.current)||void 0===e||e.abort(),$.current=null,L(!1),z("Request cancelled. Your current chart and previous proposal have not changed.")},Z=(null==e?void 0:e.settingsUrl)||"/search/ai-settings",H=Boolean(e&&(null==r?void 0:r.connected)),K=O||x,ee=O?(0,b.chartChanges)((null==x?void 0:x.command.spec)||null,O.command.spec):[];return n.createElement("article",{className:"ai-chart-workspace"},n.createElement("header",{className:"ai-chart-page-heading"},n.createElement("div",null,n.createElement("h1",null,"AI Powered Chart Builder"),n.createElement("p",null,"Describe a question. Review a chart grounded in live PDB data.")),n.createElement(a.A,{variant:"outline-secondary",href:Z},n.createElement(p,null)," AI Settings")),!H&&n.createElement(i.A,{variant:"info",className:"ai-chart-connect"},e&&null===r?"Checking your AI connection…":n.createElement(n.Fragment,null,"Connect a provider in ",n.createElement("a",{href:Z},"AI Settings")," to create and refine charts. The chart builder uses the same connection as the AI Query Builder."),!e&&n.createElement("div",{className:"small mt-1"},"AI commands are available when this app is hosted in a configured Sierra environment.")),n.createElement("div",{className:"ai-chart-layout"},n.createElement("section",{className:"ai-chart-chat","aria-label":"Chart conversation"},n.createElement("div",{className:"ai-chart-panel-heading"},n.createElement("strong",null,"Build a chart"),n.createElement(a.A,{variant:"link",size:"sm",onClick:()=>{var e;X(),y([]),N(null),C(null),R([]),A(""),z(""),null===(e=V.current)||void 0===e||e.focus()},disabled:!g.length&&!x},n.createElement(u,null)," Start over")),n.createElement("div",{ref:G,className:"ai-chart-conversation","aria-live":"polite"},!g.length&&n.createElement(n.Fragment,null,n.createElement("p",{className:"ai-chart-welcome"},"What would you like to learn about the PDB archive?"),n.createElement("p",{className:"ai-chart-muted"},"Compare methods, organisms, ligands, release-year trends, resolution distributions, or integrative input data. Start with an example or ask your own question."),n.createElement("div",{className:"ai-chart-examples"},T.map(e=>n.createElement("button",{key:e.title,onClick:()=>{var t;A(e.prompt),null===(t=V.current)||void 0===t||t.focus()}},n.createElement("strong",null,e.title),n.createElement("span",null,e.prompt))))),g.map((e,t)=>n.createElement("div",{key:t,className:"ai-chart-message ai-chart-message-".concat(e.role)},n.createElement("span",{className:"visually-hidden"},"user"===e.role?"You":"AI",": "),e.content)),j.map((e,t)=>{var r;return n.createElement("div",{key:t,className:"ai-chart-question"},n.createElement("strong",null,e.question),n.createElement("div",null,null===(r=e.options)||void 0===r?void 0:r.map(t=>n.createElement(a.A,{key:t,size:"sm",variant:"outline-primary",disabled:q||!H,onClick:()=>Q("".concat(e.question,"\n").concat(t))},t))))}),q&&n.createElement("div",{role:"status",className:"ai-chart-wait"},n.createElement(o.A,{animation:"border",size:"sm"}),n.createElement("span",null,B))),U&&n.createElement(i.A,{variant:"danger",className:"m-3 mb-0",dismissible:!0,onClose:()=>z("")},U),n.createElement(l.A,{className:"ai-chart-composer",onSubmit:e=>{e.preventDefault(),Q()}},n.createElement(l.A.Label,{htmlFor:"ai-chart-prompt"},K?"Refine this chart":"Describe your chart"),n.createElement(l.A.Control,{as:"textarea",id:"ai-chart-prompt",ref:V,rows:3,maxLength:4e3,value:w,onChange:e=>A(e.target.value),placeholder:K?"Try “make it a line chart” or “only show structures released since 2020”…":"For example, compare X-ray and cryo-EM structure releases over time…",disabled:q}),n.createElement("div",{className:"ai-chart-composer-actions"},n.createElement("span",null,(null==r?void 0:r.model)||"Your connected AI model"),q?n.createElement(a.A,{variant:"outline-secondary",onClick:X},n.createElement(d,null)," Cancel"):n.createElement(a.A,{type:"submit",disabled:!H||!w.trim()},n.createElement(m,null)," Build Chart")))),n.createElement("div",{className:"ai-chart-canvas"},O&&n.createElement("div",{className:"ai-chart-review"},n.createElement("div",null,n.createElement("strong",null,"Review before applying"),n.createElement("p",null,(0,b.describeChart)(O.command.spec))),ee.length?n.createElement("ul",null,ee.map(e=>n.createElement("li",{key:e},e))):n.createElement("p",null,"No chart settings changed."),O.data.warnings.length>0&&n.createElement("details",null,n.createElement("summary",null,O.data.warnings.length," counting ",1===O.data.warnings.length?"note":"notes"),n.createElement("ul",null,O.data.warnings.map(e=>n.createElement("li",{key:e},e)))),n.createElement("div",{className:"ai-chart-review-actions"},n.createElement(a.A,{disabled:q,onClick:()=>{C(O),N(null)}},n.createElement(c,null)," Apply chart"),n.createElement(a.A,{variant:"outline-secondary",disabled:q,onClick:()=>N(null)},"Discard proposal"))),K?n.createElement(I,{key:"".concat(K.data.retrievedAt,"-").concat(Boolean(O)),spec:K.command.spec,data:K.data,preview:Boolean(O)}):n.createElement("div",{className:"ai-chart-placeholder"},n.createElement("p",null,"A validated preview will appear here. Nothing is applied until you choose Apply chart.")),x&&O&&n.createElement("details",{className:"ai-chart-previous"},n.createElement("summary",null,"View currently applied chart"),n.createElement(I,{spec:x.command.spec,data:x.data})))))}},3482(e){"use strict";e.exports=JSON.parse('{"version":1,"action":"configureChart","name":"AI Powered Chart Builder","checkedAt":"2026-09-13","sources":["https://search.rcsb.org/#faceted-queries","https://search.rcsb.org/rcsbsearch/v2/metadata/schema"],"countingRules":["Every value is a live count of released PDB entries, not polymer entities, atoms, chains, downloads, citations, or unique sequences. Computed models are excluded.","Categories may overlap when an entry has multiple methods, organisms, polymer types, input datasets, or resolution values. Do not sum overlapping buckets to claim a unique total.","Percentages use all matching entries in each cohort as the denominator, including entries missing the chart attribute. They are not normalized to the displayed top categories.","All filters are entry-level requirements. An organism and ligand filter may match different entities in the same entry. Do not promise same-chain, binding-site, or same-entity relationships.","Lower and upper bounds on one numeric or date attribute are combined into one inclusive interval. At least one value must satisfy both bounds; different reported resolutions cannot satisfy opposite ends of the interval.","Cumulative release-year counts start at the selected lower release-year bound, not necessarily the beginning of the archive. Current-year counts are incomplete.","Comparisons use up to four explicit named cohorts with independent additional filters; cohorts may overlap. Never fabricate counts or arbitrary Search API attributes.","Ask a clarification when a request needs unsupported statistics, ambiguous units or entity relationships, or an unknown organism taxon. Preserve the existing chart and filters during refinement unless the user requests a change."],"dimensions":{"releaseYear":{"label":"Release year","attribute":"rcsb_accession_info.initial_release_date","aggregation":"date_histogram","interval":"year","ordered":true,"overlapping":false},"method":{"label":"Experimental method","attribute":"exptl.method","aggregation":"terms","ordered":false,"overlapping":true},"sourceOrganism":{"label":"Source organism","attribute":"rcsb_entity_source_organism.ncbi_scientific_name","aggregation":"terms","ordered":false,"overlapping":true},"resolution":{"label":"Resolution (Å)","attribute":"rcsb_entry_info.resolution_combined","aggregation":"histogram","ordered":true,"overlapping":true},"polymerType":{"label":"Polymer type","attribute":"entity_poly.rcsb_entity_polymer_type","aggregation":"terms","ordered":false,"overlapping":true},"integrativeInput":{"label":"Integrative input data type","attribute":"rcsb_ihm_dataset_list.name","aggregation":"terms","ordered":false,"overlapping":true,"requiredFilter":{"field":"methodology","operator":"in","value":["integrative"]}},"methodology":{"label":"Structure determination methodology","attribute":"rcsb_entry_info.structure_determination_methodology","aggregation":"terms","ordered":false,"overlapping":false}},"filters":{"releaseYear":{"label":"Release year","attribute":"rcsb_accession_info.initial_release_date","kind":"year","operators":["gte","lte"],"minimum":1971,"maximum":2100},"method":{"label":"Experimental method","attribute":"exptl.method","kind":"enum","operators":["in"],"values":["X-RAY DIFFRACTION","ELECTRON MICROSCOPY","SOLUTION NMR","SOLID-STATE NMR","NEUTRON DIFFRACTION","ELECTRON CRYSTALLOGRAPHY","FIBER DIFFRACTION","POWDER DIFFRACTION","SOLUTION SCATTERING","INFRARED SPECTROSCOPY","EPR","FLUORESCENCE TRANSFER"]},"resolution":{"label":"Resolution (Å)","attribute":"rcsb_entry_info.resolution_combined","kind":"number","operators":["gte","lte"],"minimum":0.01,"maximum":1000},"sourceTaxonomy":{"label":"Source organism NCBI taxonomy ID (including descendants)","attribute":"rcsb_entity_source_organism.taxonomy_lineage.id","kind":"taxonomy","operators":["in"]},"sourceOrganism":{"label":"Exact source organism scientific name","attribute":"rcsb_entity_source_organism.ncbi_scientific_name","kind":"text","operators":["in"]},"ligand":{"label":"Non-polymer chemical component ID present in entry","attribute":"rcsb_nonpolymer_entity.rcsb_nonpolymer_comp_id","kind":"identifier","operators":["in"]},"polymerType":{"label":"Polymer type present in entry","attribute":"entity_poly.rcsb_entity_polymer_type","kind":"enum","operators":["in"],"values":["Protein","DNA","RNA","NA-hybrid","Other"]},"methodology":{"label":"Structure determination methodology","attribute":"rcsb_entry_info.structure_determination_methodology","kind":"enum","operators":["in"],"values":["experimental","integrative"]}},"knownTaxa":{"human":9606,"mouse":10090,"Escherichia coli":562,"Saccharomyces cerevisiae":4932},"specSchema":{"type":"object","additionalProperties":false,"required":["version","title","categoryLabel","valueLabel","dimension","chartType","measure","scale","orientation","sort","topN","interval","cumulative","filters","series"],"properties":{"version":{"type":"integer","enum":[1]},"title":{"type":"string","minLength":1,"maxLength":140},"categoryLabel":{"type":"string","minLength":1,"maxLength":100},"valueLabel":{"type":"string","minLength":1,"maxLength":100},"dimension":{"type":"string","enum":["releaseYear","method","sourceOrganism","resolution","polymerType","integrativeInput","methodology"]},"chartType":{"type":"string","enum":["bar","line","pie"]},"measure":{"type":"string","enum":["count","percent"]},"scale":{"type":"string","enum":["linear","logarithmic"]},"orientation":{"type":"string","enum":["vertical","horizontal"]},"sort":{"type":"string","enum":["labelAsc","countDesc"]},"topN":{"type":"integer","minimum":1,"maximum":60},"interval":{"type":"number","minimum":0.1,"maximum":100},"cumulative":{"type":"boolean"},"filters":{"type":"array","maxItems":12,"items":{"$ref":"#/$defs/filter"}},"series":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["label","filters"],"properties":{"label":{"type":"string","minLength":1,"maxLength":80},"filters":{"type":"array","maxItems":8,"items":{"$ref":"#/$defs/filter"}}}}}},"$defs":{"filter":{"type":"object","additionalProperties":false,"required":["field","operator","value"],"properties":{"field":{"type":"string","enum":["releaseYear","method","resolution","sourceTaxonomy","sourceOrganism","ligand","polymerType","methodology"]},"operator":{"type":"string","enum":["in","gte","lte"]},"value":{"anyOf":[{"type":"number"},{"type":"array","minItems":1,"maxItems":10,"uniqueItems":true,"items":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"integer","minimum":1,"maximum":999999999}]}}]}}}}}}')}}]);
|