col-browser 2.3.9 → 2.4.0

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.
Files changed (53) hide show
  1. package/README.md +29 -0
  2. package/es/bibtex.js +2 -2
  3. package/es/chunks/{BibTex-CPaVr-5w.js → BibTex-79CCKAOK.js} +2 -2
  4. package/es/chunks/{BibTex-CPaVr-5w.js.map → BibTex-79CCKAOK.js.map} +1 -1
  5. package/es/chunks/{DatasetCitation-JpNSTWz-.js → DatasetCitation-BXtAmjdZ.js} +2 -2
  6. package/es/chunks/{DatasetCitation-JpNSTWz-.js.map → DatasetCitation-BXtAmjdZ.js.map} +1 -1
  7. package/es/chunks/{DatasetlogoWithFallback-BhWvpgDn.js → DatasetlogoWithFallback-Dava2uqZ.js} +2 -2
  8. package/es/chunks/{DatasetlogoWithFallback-BhWvpgDn.js.map → DatasetlogoWithFallback-Dava2uqZ.js.map} +1 -1
  9. package/es/chunks/{Distributions-CKn1-Qze.js → Distributions-Bd4hFYdS.js} +3 -3
  10. package/es/chunks/{Distributions-CKn1-Qze.js.map → Distributions-Bd4hFYdS.js.map} +1 -1
  11. package/es/chunks/{MergedDataBadge-DK4XUXsL.js → MergedDataBadge-C1CgoRFz.js} +2 -2
  12. package/es/chunks/{MergedDataBadge-DK4XUXsL.js.map → MergedDataBadge-C1CgoRFz.js.map} +1 -1
  13. package/es/chunks/{TaxonBreakdown-BYRnP8bH.js → TaxonBreakdown-DeWamLu_.js} +2 -2
  14. package/es/chunks/{TaxonBreakdown-BYRnP8bH.js.map → TaxonBreakdown-DeWamLu_.js.map} +1 -1
  15. package/es/chunks/{XrGutter-CORP2r5Y.js → XrGutter-CU7_QPAp.js} +2 -2
  16. package/es/chunks/{XrGutter-CORP2r5Y.js.map → XrGutter-CU7_QPAp.js.map} +1 -1
  17. package/es/chunks/config-D1NH4DTr.js +22 -0
  18. package/es/chunks/config-D1NH4DTr.js.map +1 -0
  19. package/es/chunks/{dataset-BuF063rn.js → dataset-BL6g4w0G.js} +2 -2
  20. package/es/chunks/{dataset-BuF063rn.js.map → dataset-BL6g4w0G.js.map} +1 -1
  21. package/es/chunks/{enumeration-CC8SblcI.js → enumeration-DM8Hb36g.js} +2 -2
  22. package/es/chunks/{enumeration-CC8SblcI.js.map → enumeration-DM8Hb36g.js.map} +1 -1
  23. package/es/chunks/{sector-Behb-WCC.js → sector-Qeo1zPxr.js} +2 -2
  24. package/es/chunks/{sector-Behb-WCC.js.map → sector-Qeo1zPxr.js.map} +1 -1
  25. package/es/chunks/withTheme-Dh6PRuII.js +17 -0
  26. package/es/chunks/withTheme-Dh6PRuII.js.map +1 -0
  27. package/es/config.js +5 -0
  28. package/es/config.js.map +1 -0
  29. package/es/index.js +4 -2
  30. package/es/index.js.map +1 -1
  31. package/es/search.js +14 -13
  32. package/es/search.js.map +1 -1
  33. package/es/sourceDataset.js +7 -6
  34. package/es/sourceDataset.js.map +1 -1
  35. package/es/sourceDatasetList.js +16 -15
  36. package/es/sourceDatasetList.js.map +1 -1
  37. package/es/taxon.js +215 -214
  38. package/es/taxon.js.map +1 -1
  39. package/es/taxonBreakdown.js +23 -22
  40. package/es/taxonBreakdown.js.map +1 -1
  41. package/es/taxonDistribution.js +20 -19
  42. package/es/taxonDistribution.js.map +1 -1
  43. package/es/tree.js +422 -411
  44. package/es/tree.js.map +1 -1
  45. package/package.json +5 -1
  46. package/types/config.d.ts +1 -0
  47. package/types/index.d.ts +21 -0
  48. package/umd/col-browser.js +42 -16
  49. package/umd/col-browser.js.map +1 -1
  50. package/umd/col-browser.min.js +4 -4
  51. package/umd/col-browser.min.js.map +1 -1
  52. package/es/chunks/config-B2Z9BaEd.js +0 -30
  53. package/es/chunks/config-B2Z9BaEd.js.map +0 -1
package/es/search.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sources":["../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UpOutlined.js","../node_modules/@ant-design/icons/es/icons/UpOutlined.js","../src/Search/Classification.js","../src/Search/SearchBox.js","../src/Search/MultiValueFilter.js","../src/Search/RowDetail.js","../src/components/DatasetAutocomplete.js","../src/Search/NameSearch.js","../src/Search/index.js","../src/entries/search.js"],"sourcesContent":["// This icon file is generated automatically.\nvar DownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" } }] }, \"name\": \"down\", \"theme\": \"outlined\" };\nexport default DownOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst DownOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DownOutlinedSvg\n}));\n\n/**![down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4NCAyNTZoLTc1Yy01LjEgMC05LjkgMi41LTEyLjkgNi42TDUxMiA2NTQuMiAyMjcuOSAyNjIuNmMtMy00LjEtNy44LTYuNi0xMi45LTYuNmgtNzVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDM1Mi42IDQ4Ni4xYzEyLjggMTcuNiAzOSAxNy42IDUxLjcgMGwzNTIuNi00ODYuMWMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oiIC8+PC9zdmc+) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(DownOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DownOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar UpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z\" } }] }, \"name\": \"up\", \"theme\": \"outlined\" };\nexport default UpOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UpOutlinedSvg from \"@ant-design/icons-svg/es/asn/UpOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst UpOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UpOutlinedSvg\n}));\n\n/**![up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg5MC41IDc1NS4zTDUzNy45IDI2OS4yYy0xMi44LTE3LjYtMzktMTcuNi01MS43IDBMMTMzLjUgNzU1LjNBOCA4IDAgMDAxNDAgNzY4aDc1YzUuMSAwIDkuOS0yLjUgMTIuOS02LjZMNTEyIDM2OS44bDI4NC4xIDM5MS42YzMgNC4xIDcuOCA2LjYgMTIuOSA2LjZoNzVjNi41IDAgMTAuMy03LjQgNi41LTEyLjd6IiAvPjwvc3ZnPg==) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(UpOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UpOutlined';\n}\nexport default RefIcon;","import React from \"react\";\nimport { LinkTo } from \"../router\";\n\nconst ranks = [\"family\", \"superfamily\", \"order\", \"subclass\", \"class\", \"superclass\", \"subphylum\", \"phylum\"];\n\nexport default ({ classification, maxParents = classification.length, truncate }) => {\n const clazzification = classification.slice(Math.max(classification.length - maxParents));\n if (truncate) {\n const classificationRankMap = classification.reduce((acc, curr) => (acc[curr.rank] = curr, acc), {});\n\n const kingdom = classificationRankMap[\"kingdom\"];\n let familyOrClosestAlternative;\n for (let i = 0; i < ranks.length; i++) {\n if (classificationRankMap[ranks[i]]) {\n familyOrClosestAlternative = classificationRankMap[ranks[i]];\n break;\n }\n }\n if (kingdom && familyOrClosestAlternative) {\n return (\n <React.Fragment>\n <LinkTo to=\"taxon\" args={kingdom.id}>{kingdom.name}</LinkTo>\n {familyOrClosestAlternative.rank === \"phylum\" ? \" > \" : \" > ... > \"}\n <LinkTo to=\"taxon\" args={familyOrClosestAlternative.id}>{familyOrClosestAlternative.name}</LinkTo>\n </React.Fragment>\n );\n } else if (kingdom) {\n return <LinkTo to=\"taxon\" args={kingdom.id}>{kingdom.name}</LinkTo>;\n } else {\n return null;\n }\n } else {\n return clazzification.map((t, key) => (\n <React.Fragment key={key}>\n <LinkTo to=\"taxon\" args={t.id}>{t.name}</LinkTo>\n {!Object.is(clazzification.length - 1, key) && \" > \"}\n </React.Fragment>\n ));\n }\n};\n","import React from \"react\";\nimport { CloseCircleOutlined } from '@ant-design/icons';\nimport { Input } from \"antd\";\n// test\nconst Search = Input.Search;\n\nclass SearchBox extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n search: \"\"\n };\n }\n componentDidMount = () => {\n if (this.props.defaultValue) {\n this.setState({ search: this.props.defaultValue });\n }\n };\n componentDidUpdate = (prevProps) => {\n\n if (prevProps.defaultValue !== this.props.defaultValue) {\n this.setState({ search: this.props.defaultValue});\n }\n }\n\n resetSearch = () => {\n this.setState({ search: \"\" }, () => {\n this.props.onSearch(this.state.search);\n });\n }\n render = () => {\n \n return (\n <Search\n style={this.props.style || null}\n placeholder=\"Search query\"\n value={this.state.search}\n onSearch={value => this.props.onSearch(this.state.search)}\n onChange={event => this.setState({ search: event.target.value})}\n addonAfter={this.props.addonAfter}\n allowClear\n autoFocus={true}\n />\n );\n };\n}\n\nexport default SearchBox;\n","import React from \"react\";\n\nimport { Form, Select } from \"antd\";\nimport { isArray, snakeCase, startCase } from \"lodash-es\";\n\n\nconst FormItem = Form.Item;\n\nconst Option = Select.Option;\n\nconst formItemLayout = {\n labelCol: {\n xs: { span: 24 },\n sm: { span: 24 },\n md: { span: 8 },\n },\n wrapperCol: {\n xs: { span: 24 },\n sm: { span: 24 },\n md: { span: 16 },\n },\n };\n\nclass MultiValueFilter extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n selected: this.props.selected,\n randomID: (Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)\n };\n }\n\n\n handleChange = selected => {\n \n this.setState({ selected }, () => {\n this.props.onChange(selected);\n });\n };\n\n render = () => {\n const {defaultValue, label, vocab} = this.props;\n const {randomID} = this.state;\n //const randomID = (Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1);\n const vocabKeys = new Set([...vocab.map(i => i.value)]);\n let val; \n if(defaultValue && isArray(defaultValue)){\n val = defaultValue.filter(v => vocabKeys.has(v))\n } else if(defaultValue){\n val = [defaultValue].filter(v => vocabKeys.has(v))\n }\n return (\n <FormItem\n {...formItemLayout}\n label={label}\n style={{marginBottom: '8px', width: \"100%\"}}\n >\n <div id={`${snakeCase(label)}_${randomID}`}>\n <Select\n showSearch\n // style={{ width: \"100%\" }}\n mode=\"multiple\"\n placeholder=\"Please select\"\n value={val}\n onChange={this.handleChange}\n getPopupContainer={() =>\n document.getElementById(`${snakeCase(label)}_${randomID}`)\n }\n >\n {vocab.map((i) => {\n return (typeof i === 'string') ? <Option key={i} value={i}>{startCase(i)}</Option> : <Option key={i.value} value={i.value}>{i.label}</Option>\n })}\n </Select>\n </div>\n </FormItem>\n );\n };\n}\n\nexport default MultiValueFilter;\n","import React from \"react\";\nimport { Row, Col, Tag, Tooltip } from \"antd\";\nimport Classification from \"./Classification\";\nimport { get, initial } from \"lodash-es\";\n\nconst RowDetail = ({ issues, usage, classification, vernacularNames, issueMap }) => (\n <React.Fragment>\n {get(usage, \"id\") && (\n <Row style={{ marginBottom: \"10px\" }}>\n <Col\n span={3}\n style={{\n textAlign: \"right\",\n paddingRight: \"16px\",\n fontWeight: \"bold\"\n }}\n >\n ID:\n </Col>\n <Col span={18}>{get(usage, \"id\")}</Col>\n </Row>\n )}\n {classification && (\n <Row style={{ marginBottom: \"10px\" }}>\n <Col\n span={3}\n style={{\n textAlign: \"right\",\n paddingRight: \"16px\",\n fontWeight: \"bold\"\n }}\n >\n Classification:\n </Col>\n <Col span={18}>\n <Classification\n classification={initial(classification)}\n />\n </Col>\n </Row>\n )}\n {vernacularNames && (\n <Row>\n <Col\n span={3}\n style={{\n textAlign: \"right\",\n paddingRight: \"16px\",\n fontWeight: \"bold\"\n }}\n >\n Vernacular:\n </Col>\n <Col span={18} style={{paddingBottom: \"12px\"}}>\n {vernacularNames.slice(0, 8).map(vn => vn.name).join(\", \")}\n </Col>\n </Row>\n )} \n { /* issues && (\n <Row>\n <Col\n span={3}\n style={{\n textAlign: \"right\",\n paddingRight: \"16px\",\n fontWeight: \"bold\"\n }}\n >\n Issues:\n </Col>\n <Col span={18}>\n {issues.map(i => (\n <Tooltip key={i} title={get(issueMap, `[${i}].description`)}>\n {\" \"}\n <Tag key={i} color={get(issueMap, `[${i}].color`)}>\n {i}\n </Tag>\n </Tooltip>\n ))}\n </Col>\n </Row>\n ) */}\n </React.Fragment>\n);\n\nexport default RowDetail;\n","import React from 'react';\nimport client from \"../api/client\";\nimport config from \"../config\";\nimport { CloseCircleOutlined } from '@ant-design/icons';\nimport { AutoComplete, Input, Button } from 'antd';\nimport { debounce, get } from \"lodash-es\";\nimport Highlighter from \"react-highlight-words\";\n\nconst Option = AutoComplete.Option;\n\nclass DatasetAutocomplete extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.getDatasets = debounce(this.getDatasets, 500);\n\n this.state = {\n datasets: [],\n value: '',\n randomID: (Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)\n }\n }\n\n \n\n componentDidMount = () => {\n const {defaultDatasetKey} = this.props;\n if(defaultDatasetKey){\n this.setDefaultValue(defaultDatasetKey)\n }\n }\n\n componentDidUpdate = (prevProps) => {\n const { defaultDatasetKey} = this.props;\n if(defaultDatasetKey && defaultDatasetKey !== prevProps.defaultDatasetKey){\n this.setDefaultValue(defaultDatasetKey)\n } else if(prevProps.defaultDatasetKey && !defaultDatasetKey){\n this.setState({value: ''})\n }\n }\n\n componentWillUnmount() {\n this.getDatasets.cancel();\n }\n\n setDefaultValue = (defaultDatasetKey) => {\n client(`${config.dataApi}dataset/${defaultDatasetKey}`)\n .then(res => {\n this.setState({value: get(res, 'data.title') || ''})\n this.props.onSelectDataset(res.data)\n })\n }\n\n getDatasets = (q) => {\n const {contributesTo} = this.props;\n client(`${config.dataApi}dataset?q=${q}&limit=30${contributesTo ? '&contributesTo='+contributesTo : ''}`)\n .then((res) => {\n this.setState({ datasets: res.data.result})\n })\n .catch((err) => {\n this.setState({ datasets: [], err })\n })\n }\n onSelectDataset = (val, obj) => {\n this.setState({value: val})\n this.props.onSelectDataset({key: obj.key, title: val})\n }\n onReset = () => {\n this.setState({ value: \"\", names: [] }, this.props.onResetSearch);\n }\n render = () => {\n const {value, randomID} = this.state;\n const {style} = this.props\n // const randomID = (Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1);\n \n\n const options = this.state.datasets ? this.state.datasets.map((o) => {\n const text = `${o.alias || o.title} [${o.key}]`;\n return {\n key: o.key,\n value: text,\n label: (\n <Highlighter\n highlightStyle={{ fontWeight: \"bold\", padding: 0 }}\n searchWords={value.split(\" \")}\n autoEscape\n textToHighlight={text}\n />\n ),\n data: o\n }\n \n }) : [];\n\n return <div id={`dataset_autocomplete_${randomID}`}><AutoComplete\n onSelect={this.onSelectDataset}\n onSearch={(q) => (!!q ? this.getDatasets(q) : this.onReset())}\n options={options}\n placeholder={this.props.placeHolder || \"Find dataset\"}\n style={style ? style : { width: '100%' }}\n onChange={(value) => this.setState({value})}\n value={value}\n getPopupContainer={() =>\n document.getElementById(`dataset_autocomplete_${randomID}`)\n }\n >\n <Input.Search allowClear />\n </AutoComplete></div>\n }\n\n}\n\nexport default DatasetAutocomplete;","import React from \"react\";\nimport client from \"../api/client\";\nimport { UpOutlined, DownOutlined } from \"@ant-design/icons\";\nimport { LinkTo } from \"../router\";\nimport { getDatasetSimple } from \"../api/dataset\";\nimport { getTaxGroup } from \"../api/enumeration\";\nimport { readSetting, writeSetting } from \"../storage\";\n\n// Only the Content filter (All/Base/Extended) is remembered across visits —\n// never the query, search fields, or other filters.\nconst CONTENT_TYPE_KEY = \"search-content-type\";\nimport {\n Table,\n Alert,\n Row,\n Col,\n Button,\n Form,\n Radio,\n Select,\n} from \"antd\";\nimport config from \"../config\";\nimport qs from \"query-string\";\nimport Classification from \"./Classification\";\nimport SearchBox from \"./SearchBox\";\nimport MultiValueFilter from \"./MultiValueFilter\";\nimport RowDetail from \"./RowDetail\";\nimport { forEach, get, initial, isArray, isEmpty, isEqual, merge, startCase } from \"lodash-es\";\nimport ErrorMsg from \"../components/ErrorMsg\";\nimport NameAutocomplete from \"../ColTree/NameAutocomplete\";\nimport DatasetAutocomplete from \"../components/DatasetAutocomplete\";\nimport Citation from \"../components/DatasetCitation\";\nimport XrGutter from \"../components/XrGutter\";\n\nconst FormItem = Form.Item;\nconst RadioGroup = Radio.Group;\nconst FACET_VOCAB = [\n \"rank\",\n \"issue\",\n \"status\",\n \"nomStatus\",\n \"nameType\",\n \"field\",\n \"authorship\",\n \"extinct\",\n \"environment\",\n \"group\",\n \"authorshipYear\",\n];\nconst PAGE_SIZE = 50;\nconst FACET_LIMIT = 50;\nconst defaultParams = {\n limit: 50,\n offset: 0,\n facet: FACET_VOCAB, //[\"rank\", \"issue\", \"status\", \"nomStatus\", \"nameType\", \"field\"],\n facetLimit: FACET_LIMIT,\n sortBy: \"relevance\",\n};\n\nconst getColumns = () => [\n {\n title: \"Scientific Name\",\n dataIndex: [\"usage\", \"labelHtml\"],\n key: \"scientificName\",\n render: (text, record) => {\n const id =\n get(record, \"usage.accepted.id\") || get(record, \"usage.id\");\n return (\n <XrGutter\n merged={record?.usage?.merged}\n datasetKey={record?.usage?.datasetKey}\n verbatimSourceKey={record?.usage?.verbatimSourceKey}\n >\n <LinkTo to=\"taxon\" args={id}>\n <span dangerouslySetInnerHTML={{ __html: text }} />\n </LinkTo>\n </XrGutter>\n );\n },\n width: 200,\n sorter: true,\n },\n {\n title: \"Status\",\n dataIndex: [\"usage\", \"status\"],\n key: \"status\",\n width: 200,\n render: (text, record) => {\n return ![\"synonym\", \"ambiguous synonym\", \"misapplied\"].includes(text) ? (\n text\n ) : (\n <React.Fragment key={get(record, \"usage.id\")}>\n {text} {text === \"misapplied\" ? \"to \" : \"of \"}\n <span\n dangerouslySetInnerHTML={{\n __html: get(record, \"usage.accepted.labelHtml\"),\n }}\n />\n </React.Fragment>\n );\n },\n },\n {\n title: \"Rank\",\n dataIndex: [\"usage\", \"name\", \"rank\"],\n key: \"rank\",\n width: 60,\n sorter: true,\n },\n {\n title: \"Classification\",\n dataIndex: [\"usage\", \"classification\"],\n key: \"parents\",\n width: 180,\n render: (text, record) => {\n return !get(record, \"classification\") ? (\n \"\"\n ) : (\n <Classification\n key={get(record, \"usage.id\")}\n classification={initial(record.classification)}\n truncate={true}\n datasetKey={get(record, \"usage.name.datasetKey\")}\n />\n );\n },\n },\n];\n\nclass NameSearchPage extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n data: [],\n advancedFilters: false,\n columns: getColumns(),\n params: {},\n taxGroups: [],\n pagination: {\n pageSize: PAGE_SIZE,\n current: 1,\n showQuickJumper: true,\n pageSizeOptions: [50, 100, 500, 1000],\n },\n loading: false,\n dataset: null,\n };\n }\n\n componentDidMount = async () => {\n this.parseParamsAndGetData();\n const { datasetKey } = this.props;\n // Single dataset lookup. Stores both the descriptor (used by the\n // citation footer when enabled) and the lowercase origin, which gates\n // the source-dataset and Content filter UI.\n try {\n const { data: dataset } = await getDatasetSimple(datasetKey);\n this.setState({\n dataset,\n datasetOrigin: (dataset?.origin || \"\").toLowerCase(),\n });\n } catch (err) {}\n try {\n const taxGroups = await getTaxGroup();\n this.setState({ taxGroups });\n } catch (err) {}\n };\n\n componentDidUpdate = (prevProps) => {\n if (!isEqual(prevProps.filters, this.props.filters)) {\n this.parseParamsAndGetData();\n }\n };\n\n getRank = () => {\n client(`${config.dataApi}vocab/rank`).then((res) =>\n this.setState({ rank: res.data.map((r) => r.name) })\n );\n };\n parseParamsAndGetData = () => {\n const { defaultTaxonKey, filters } = this.props;\n let params = { ...(filters || {}) };\n if (defaultTaxonKey && !params.TAXON_ID) {\n params.TAXON_ID = defaultTaxonKey;\n }\n if (isEmpty(params)) {\n // Fresh visit (clean URL): start from the defaults, but restore the\n // remembered Content filter (All/Base/Extended) if one was saved.\n params = { ...defaultParams };\n const storedContentType = readSetting(CONTENT_TYPE_KEY, undefined);\n if (storedContentType !== undefined && storedContentType !== null) {\n params.sectorMode = storedContentType;\n }\n this.pushParams(params);\n } else if (!params.facet) {\n params.facet = FACET_VOCAB;\n }\n if (!params.facetLimit) {\n params.facetLimit = FACET_LIMIT;\n }\n\n // fuzzy is no longer a separate API parameter; it's now the FUZZY type value\n delete params.fuzzy;\n // the UI only supports fuzzy matching on/off; drop other legacy type values\n if (params.type && String(params.type).toUpperCase() !== \"FUZZY\") {\n delete params.type;\n }\n\n if (!params.limit) {\n params.limit = PAGE_SIZE;\n }\n if (!params.offset) {\n params.offset = 0;\n }\n this.setState(\n {\n params,\n pagination: {\n pageSize: params.limit || PAGE_SIZE,\n current:\n Number(params.offset || 0) / Number(params.limit || PAGE_SIZE) + 1,\n showQuickJumper: true,\n pageSizeOptions: [50, 100, 500, 1000],\n },\n },\n this.getData\n );\n };\n\n pushParams = (params) => {\n const next = { ...params };\n if (!next.q) delete next.q;\n if (this.props.onFiltersChange) this.props.onFiltersChange(next);\n };\n\n getData = () => {\n const { params } = this.state;\n this.setState({ loading: true });\n const { datasetKey } = this.props;\n\n const url = `${config.dataApi}dataset/${datasetKey}/nameusage/search`;\n const params_ = get(params, \"status\")\n ? params\n : { ...params, status: \"_NOT_NULL\" };\n client(`${url}?${qs.stringify(params_)}`)\n .then((res) => {\n const pagination = { ...this.state.pagination };\n pagination.total = res.data.total;\n\n this.setState({\n loading: false,\n data: res.data,\n err: null,\n pagination,\n });\n })\n .catch((err) => {\n this.setState({ loading: false, error: err, data: [] });\n });\n };\n handleTableChange = (pagination, filters, sorter) => {\n let query = merge(this.state.params, {\n limit: pagination.pageSize,\n offset: (pagination.current - 1) * pagination.pageSize,\n ...filters,\n });\n if (sorter && sorter.field) {\n if (sorter.field[sorter.field.length - 1] === \"labelHtml\") {\n query.sortBy = \"name\";\n } else if (sorter.field[sorter.field.length - 1] === \"rank\") {\n query.sortBy = \"taxonomic\";\n } else {\n query.sortBy = sorter.field[sorter.field.length - 1];\n }\n }\n if (sorter && sorter.order === \"descend\") {\n query.reverse = true;\n } else {\n query.reverse = false;\n }\n this.setState({ params: query }, () => this.pushParams(query));\n };\n\n updateSearch = (params) => {\n // Remember the Content filter (All/Base/Extended) across visits.\n if (\"sectorMode\" in params) writeSetting(CONTENT_TYPE_KEY, params.sectorMode);\n let newParams = { ...this.state.params, offset: 0, limit: 50 };\n forEach(params, (v, k) => {\n newParams[k] = v;\n });\n const notNullParams = Object.keys(newParams).reduce(\n (acc, cur) => (\n newParams[cur] !== null && (acc[cur] = newParams[cur]), acc\n ),\n {}\n );\n this.setState({ params: notNullParams }, () =>\n this.pushParams(notNullParams)\n );\n };\n\n resetSearch = () => {\n this.setState(\n {\n params: defaultParams,\n },\n () => this.pushParams(defaultParams)\n );\n };\n\n toggleAdvancedFilters = () => {\n this.setState({ advancedFilters: !this.state.advancedFilters });\n };\n\n render() {\n const {\n data: { result, facets },\n loading,\n error,\n params,\n pagination,\n advancedFilters,\n dataset,\n taxGroups,\n } = this.state;\n const { datasetKey, defaultTaxonKey, citation } = this.props;\n const isFuzzy = String(params.type || \"\").toUpperCase() === \"FUZZY\";\n const facetRanks = get(facets, \"rank\")\n ? facets.rank.map((r) => ({\n value: r.value,\n label: `${startCase(r.value)} (${r.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetIssues = get(facets, \"issue\")\n ? facets.issue.map((i) => ({\n value: i.value,\n label: `${startCase(i.value)} (${i.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetTaxonomicStatus = get(facets, \"status\")\n ? facets.status.map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetNomStatus = get(facets, \"nomStatus\")\n ? facets.nomStatus.map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetNomType = get(facets, \"nameType\")\n ? facets.nameType.map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetNomField = get(facets, \"field\")\n ? facets.field.map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetAuthorship = get(facets, \"authorship\")\n ? facets[\"authorship\"].map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : [];\n const extinctLabel = (v) => {\n if (v === \"1\" || v === true || v === \"true\") return \"Extinct\";\n if (v === \"0\" || v === false || v === \"false\") return \"Extant\";\n return \"Unknown\";\n };\n const facetExtinct = get(facets, \"extinct\")\n ? facets[\"extinct\"].map((s) => ({\n value: s.value,\n label: `${extinctLabel(s?.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : [];\n const facetEnvironment = get(facets, \"environment\")\n ? facets[\"environment\"].map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : [];\n const facetGroup = get(facets, \"group\")\n ? facets[\"group\"].map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : [];\n const facetAuthorshipYear = get(facets, \"authorshipYear\")\n ? facets[\"authorshipYear\"].map((s) => ({\n value: s.value,\n label: `${s.value} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : [];\n\n return (\n <div\n className=\"catalogue-of-life\"\n style={{\n padding: 24,\n minHeight: 280,\n margin: \"16px 0\",\n }}\n >\n {citation === \"top\" && dataset && <Citation dataset={dataset} />}\n\n <Row>\n {error && (\n <Alert\n style={{ marginBottom: \"10px\" }}\n message={<ErrorMsg error={error} />}\n type=\"error\"\n />\n )}\n </Row>\n <Row>\n <Col xs={24} sm={24} md={12} style={{ marginBottom: \"8px\" }}>\n <SearchBox\n defaultValue={get(this.props.filters || {}, \"q\")}\n onSearch={(value) => this.updateSearch({ q: value })}\n onResetSearch={(value) => this.updateSearch({ q: null })}\n style={{ marginBottom: \"8px\", width: \"100%\" }}\n />\n\n <NameAutocomplete\n datasetKey={datasetKey}\n minRank=\"GENUS\"\n defaultTaxonKey={\n get(params, \"TAXON_ID\") || defaultTaxonKey || null\n }\n onSelectName={(value) => {\n this.updateSearch({ TAXON_ID: value.key });\n }}\n onResetSearch={(value) => {\n this.updateSearch({ TAXON_ID: null });\n }}\n placeHolder=\"Filter by higher taxon\"\n sortBy=\"relevance\"\n autoFocus={false}\n />\n\n {(this.state.datasetOrigin === \"xrelease\" ||\n this.state.datasetOrigin === \"release\") && (\n <div style={{ marginTop: \"8px\", marginBottom: \"8px\" }}>\n <DatasetAutocomplete\n contributesTo={Number(datasetKey)}\n onSelectDataset={(value) => {\n this.updateSearch({ SECTOR_DATASET_KEY: value.key });\n }}\n defaultDatasetKey={\n get(params, \"SECTOR_DATASET_KEY\") || null\n }\n onResetSearch={(value) => {\n this.updateSearch({ SECTOR_DATASET_KEY: null });\n }}\n placeHolder=\"Filter by source dataset\"\n autoFocus={false}\n />\n </div>\n )}\n <div style={{ marginTop: \"10px\" }}>\n <Form layout=\"inline\">\n {(this.state.datasetOrigin === \"xrelease\" ||\n this.state.datasetOrigin === \"project\") && (\n <FormItem label=\"Content\">\n <RadioGroup\n style={{ marginLeft: \"8px\" }}\n size=\"small\"\n onChange={(evt) => {\n this.updateSearch({ sectorMode: evt.target.value.split(\",\")\n .filter((v) => v !== \"\")});\n }}\n value={isArray(params?.sectorMode) ? params?.sectorMode?.join(\",\") : params?.sectorMode || \"\"}\n optionType=\"button\"\n options={[\n { value: \"\", label: \"All\" },\n { value: \"attach,union\", label: \"Base\" },\n { value: \"merge\", label: \"Extended\" },\n ]}\n ></RadioGroup>\n </FormItem>\n )}\n <FormItem>\n <Select\n mode=\"multiple\"\n allowClear\n size=\"small\"\n style={{ minWidth: 200 }}\n placeholder=\"Search fields\"\n value={isArray(params?.content) ? params.content : (params?.content ? [params.content] : [])}\n onChange={(value) => this.updateSearch({ content: value.length ? value : null })}\n options={[\n { value: \"SCIENTIFIC_NAME\", label: \"Scientific name\" },\n { value: \"AUTHORSHIP\", label: \"Authorship\" },\n { value: \"VERNACULAR_NAME\", label: \"Vernacular name\" },\n ]}\n />\n </FormItem>\n <FormItem>\n <Button\n size=\"small\"\n // match the checked Radio.Button look of the Content selector:\n // primary-coloured outline & text, default background\n color={isFuzzy ? \"primary\" : \"default\"}\n variant=\"outlined\"\n aria-pressed={isFuzzy}\n onClick={() =>\n this.updateSearch({ type: isFuzzy ? null : \"FUZZY\" })\n }\n >\n Fuzzy\n </Button>\n </FormItem>\n </Form>\n \n </div>\n </Col>\n <Col xs={24} sm={24} md={12}>\n {/* <MultiValueFilter\n defaultValue={get(params, \"issue\")}\n onChange={value => this.updateSearch({ issue: value })}\n vocab={facetIssues || []}\n label=\"Issues\"\n /> */}\n\n <MultiValueFilter\n defaultValue={get(params, \"rank\")}\n onChange={(value) => this.updateSearch({ rank: value })}\n vocab={facetRanks || []}\n label=\"Ranks\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"status\")}\n onChange={(value) => this.updateSearch({ status: value })}\n vocab={facetTaxonomicStatus || []}\n label=\"Status\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"environment\")}\n onChange={(value) =>\n this.updateSearch({ environment: value })\n }\n vocab={facetEnvironment}\n label=\"Environment\"\n />\n <MultiValueFilter\n // defaultValue={get(params, \"extinct\")}\n onChange={(value) => this.updateSearch({ extinct: value })}\n vocab={facetExtinct}\n label=\"Extinct\"\n />\n {advancedFilters && (\n <React.Fragment>\n <MultiValueFilter\n defaultValue={get(params, \"nomstatus\")}\n onChange={(value) => this.updateSearch({ nomstatus: value })}\n vocab={facetNomStatus || []}\n label=\"Nomenclatural status\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"nameType\")}\n onChange={(value) => this.updateSearch({ nameType: value })}\n vocab={facetNomType || []}\n label=\"Name type\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"field\")}\n onChange={(value) => this.updateSearch({ field: value })}\n vocab={facetNomField || []}\n label=\"Name field\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"authorship\")}\n onChange={(value) => this.updateSearch({ authorship: value })}\n vocab={facetAuthorship}\n label=\"Authorship\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"group\")}\n onChange={(value) => this.updateSearch({ group: value })}\n vocab={facetGroup}\n label=\"Taxonomic group\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"authorshipYear\")}\n onChange={(value) => this.updateSearch({ authorshipYear: value })}\n vocab={facetAuthorshipYear}\n label=\"Authorship year\"\n />\n </React.Fragment>\n )}\n <div style={{ textAlign: \"right\", marginBottom: \"8px\" }}>\n <a\n style={{ marginLeft: 8, fontSize: 12 }}\n onClick={this.toggleAdvancedFilters}\n >\n Advanced{\" \"}\n {this.state.advancedFilters ? <UpOutlined /> : <DownOutlined />}\n </a>\n </div>\n </Col>\n </Row>\n <Row>\n <Col span={12} style={{ textAlign: \"left\", marginBottom: \"8px\" }}>\n <Button type=\"primary\" danger onClick={this.resetSearch}>\n Reset all\n </Button>\n </Col>\n <Col span={12} style={{ textAlign: \"right\", marginBottom: \"8px\" }}>\n {pagination &&\n !isNaN(pagination.total) &&\n `results: ${pagination.total.toLocaleString(\"en-GB\")}`}\n </Col>\n </Row>\n {!error && (\n <Table\n size=\"small\"\n columns={this.state.columns}\n scroll={{ x: \"max-content\" }}\n dataSource={result}\n loading={loading}\n pagination={this.state.pagination}\n onChange={this.handleTableChange}\n rowKey={(record) => record.usage.id}\n showSorterTooltip={false}\n expandedRowRender={(record) => (\n <RowDetail\n {...record}\n datasetKey={datasetKey}\n />\n )}\n />\n )}\n {citation === \"bottom\" && dataset && <Citation dataset={dataset} />}\n </div>\n );\n }\n}\n\nexport default NameSearchPage;\n","import React from \"react\";\nimport NameSearch from \"./NameSearch\";\nimport client, { setAuth } from \"../api/client\";\nimport { RouterContext, buildRouter } from \"../router\";\n\nexport default function Search({\n datasetKey,\n filters,\n onFiltersChange,\n defaultTaxonKey,\n citation,\n auth,\n ...routerProps\n}) {\n setAuth(auth);\n return (\n <RouterContext.Provider value={buildRouter(routerProps)}>\n <NameSearch\n datasetKey={datasetKey}\n filters={filters}\n onFiltersChange={onFiltersChange}\n defaultTaxonKey={defaultTaxonKey}\n citation={citation}\n />\n </RouterContext.Provider>\n );\n}\n","import withDatasetKey from \"../withDatasetKey\";\nimport { withTheme } from \"../withTheme\";\nimport search from \"../Search\";\n\nexport const Search = withTheme(withDatasetKey(search));\n"],"names":["DownOutlined","_extends","target","source","key","props","ref","React","AntdIcon","DownOutlinedSvg","RefIcon","UpOutlined","UpOutlinedSvg","ranks","Classification","classification","maxParents","truncate","clazzification","classificationRankMap","acc","curr","kingdom","familyOrClosestAlternative","i","jsxs","jsx","LinkTo","t","Search","Input","SearchBox","__publicField","prevProps","value","event","FormItem","Form","Option","Select","formItemLayout","MultiValueFilter","selected","defaultValue","label","vocab","randomID","vocabKeys","val","isArray","v","snakeCase","RowDetail","issues","usage","vernacularNames","issueMap","get","Row","Col","initial","vn","AutoComplete","DatasetAutocomplete","defaultDatasetKey","client","config","res","q","contributesTo","err","obj","style","options","o","text","Highlighter","debounce","CONTENT_TYPE_KEY","RadioGroup","Radio","FACET_VOCAB","PAGE_SIZE","FACET_LIMIT","defaultParams","getColumns","record","id","XrGutter","_a","_b","_c","NameSearchPage","datasetKey","dataset","getDatasetSimple","taxGroups","getTaxGroup","isEqual","r","defaultTaxonKey","filters","params","isEmpty","storedContentType","readSetting","next","url","params_","qs","pagination","sorter","query","merge","writeSetting","newParams","forEach","k","notNullParams","cur","result","facets","loading","error","advancedFilters","citation","isFuzzy","facetRanks","startCase","facetTaxonomicStatus","s","facetNomStatus","facetNomType","facetNomField","facetAuthorship","extinctLabel","facetExtinct","facetEnvironment","facetGroup","facetAuthorshipYear","Citation","Alert","ErrorMsg","NameAutocomplete","evt","Button","Table","onFiltersChange","auth","routerProps","setAuth","RouterContext","buildRouter","NameSearch","withTheme","withDatasetKey","search"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
1
+ {"version":3,"file":"search.js","sources":["../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UpOutlined.js","../node_modules/@ant-design/icons/es/icons/UpOutlined.js","../src/Search/Classification.js","../src/Search/SearchBox.js","../src/Search/MultiValueFilter.js","../src/Search/RowDetail.js","../src/components/DatasetAutocomplete.js","../src/Search/NameSearch.js","../src/Search/index.js","../src/entries/search.js"],"sourcesContent":["// This icon file is generated automatically.\nvar DownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" } }] }, \"name\": \"down\", \"theme\": \"outlined\" };\nexport default DownOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst DownOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DownOutlinedSvg\n}));\n\n/**![down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4NCAyNTZoLTc1Yy01LjEgMC05LjkgMi41LTEyLjkgNi42TDUxMiA2NTQuMiAyMjcuOSAyNjIuNmMtMy00LjEtNy44LTYuNi0xMi45LTYuNmgtNzVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDM1Mi42IDQ4Ni4xYzEyLjggMTcuNiAzOSAxNy42IDUxLjcgMGwzNTIuNi00ODYuMWMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oiIC8+PC9zdmc+) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(DownOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DownOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar UpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z\" } }] }, \"name\": \"up\", \"theme\": \"outlined\" };\nexport default UpOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UpOutlinedSvg from \"@ant-design/icons-svg/es/asn/UpOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst UpOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UpOutlinedSvg\n}));\n\n/**![up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg5MC41IDc1NS4zTDUzNy45IDI2OS4yYy0xMi44LTE3LjYtMzktMTcuNi01MS43IDBMMTMzLjUgNzU1LjNBOCA4IDAgMDAxNDAgNzY4aDc1YzUuMSAwIDkuOS0yLjUgMTIuOS02LjZMNTEyIDM2OS44bDI4NC4xIDM5MS42YzMgNC4xIDcuOCA2LjYgMTIuOSA2LjZoNzVjNi41IDAgMTAuMy03LjQgNi41LTEyLjd6IiAvPjwvc3ZnPg==) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(UpOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UpOutlined';\n}\nexport default RefIcon;","import React from \"react\";\nimport { LinkTo } from \"../router\";\n\nconst ranks = [\"family\", \"superfamily\", \"order\", \"subclass\", \"class\", \"superclass\", \"subphylum\", \"phylum\"];\n\nexport default ({ classification, maxParents = classification.length, truncate }) => {\n const clazzification = classification.slice(Math.max(classification.length - maxParents));\n if (truncate) {\n const classificationRankMap = classification.reduce((acc, curr) => (acc[curr.rank] = curr, acc), {});\n\n const kingdom = classificationRankMap[\"kingdom\"];\n let familyOrClosestAlternative;\n for (let i = 0; i < ranks.length; i++) {\n if (classificationRankMap[ranks[i]]) {\n familyOrClosestAlternative = classificationRankMap[ranks[i]];\n break;\n }\n }\n if (kingdom && familyOrClosestAlternative) {\n return (\n <React.Fragment>\n <LinkTo to=\"taxon\" args={kingdom.id}>{kingdom.name}</LinkTo>\n {familyOrClosestAlternative.rank === \"phylum\" ? \" > \" : \" > ... > \"}\n <LinkTo to=\"taxon\" args={familyOrClosestAlternative.id}>{familyOrClosestAlternative.name}</LinkTo>\n </React.Fragment>\n );\n } else if (kingdom) {\n return <LinkTo to=\"taxon\" args={kingdom.id}>{kingdom.name}</LinkTo>;\n } else {\n return null;\n }\n } else {\n return clazzification.map((t, key) => (\n <React.Fragment key={key}>\n <LinkTo to=\"taxon\" args={t.id}>{t.name}</LinkTo>\n {!Object.is(clazzification.length - 1, key) && \" > \"}\n </React.Fragment>\n ));\n }\n};\n","import React from \"react\";\nimport { CloseCircleOutlined } from '@ant-design/icons';\nimport { Input } from \"antd\";\n// test\nconst Search = Input.Search;\n\nclass SearchBox extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n search: \"\"\n };\n }\n componentDidMount = () => {\n if (this.props.defaultValue) {\n this.setState({ search: this.props.defaultValue });\n }\n };\n componentDidUpdate = (prevProps) => {\n\n if (prevProps.defaultValue !== this.props.defaultValue) {\n this.setState({ search: this.props.defaultValue});\n }\n }\n\n resetSearch = () => {\n this.setState({ search: \"\" }, () => {\n this.props.onSearch(this.state.search);\n });\n }\n render = () => {\n \n return (\n <Search\n style={this.props.style || null}\n placeholder=\"Search query\"\n value={this.state.search}\n onSearch={value => this.props.onSearch(this.state.search)}\n onChange={event => this.setState({ search: event.target.value})}\n addonAfter={this.props.addonAfter}\n allowClear\n autoFocus={true}\n />\n );\n };\n}\n\nexport default SearchBox;\n","import React from \"react\";\n\nimport { Form, Select } from \"antd\";\nimport { isArray, snakeCase, startCase } from \"lodash-es\";\n\n\nconst FormItem = Form.Item;\n\nconst Option = Select.Option;\n\nconst formItemLayout = {\n labelCol: {\n xs: { span: 24 },\n sm: { span: 24 },\n md: { span: 8 },\n },\n wrapperCol: {\n xs: { span: 24 },\n sm: { span: 24 },\n md: { span: 16 },\n },\n };\n\nclass MultiValueFilter extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n selected: this.props.selected,\n randomID: (Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)\n };\n }\n\n\n handleChange = selected => {\n \n this.setState({ selected }, () => {\n this.props.onChange(selected);\n });\n };\n\n render = () => {\n const {defaultValue, label, vocab} = this.props;\n const {randomID} = this.state;\n //const randomID = (Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1);\n const vocabKeys = new Set([...vocab.map(i => i.value)]);\n let val; \n if(defaultValue && isArray(defaultValue)){\n val = defaultValue.filter(v => vocabKeys.has(v))\n } else if(defaultValue){\n val = [defaultValue].filter(v => vocabKeys.has(v))\n }\n return (\n <FormItem\n {...formItemLayout}\n label={label}\n style={{marginBottom: '8px', width: \"100%\"}}\n >\n <div id={`${snakeCase(label)}_${randomID}`}>\n <Select\n showSearch\n // style={{ width: \"100%\" }}\n mode=\"multiple\"\n placeholder=\"Please select\"\n value={val}\n onChange={this.handleChange}\n getPopupContainer={() =>\n document.getElementById(`${snakeCase(label)}_${randomID}`)\n }\n >\n {vocab.map((i) => {\n return (typeof i === 'string') ? <Option key={i} value={i}>{startCase(i)}</Option> : <Option key={i.value} value={i.value}>{i.label}</Option>\n })}\n </Select>\n </div>\n </FormItem>\n );\n };\n}\n\nexport default MultiValueFilter;\n","import React from \"react\";\nimport { Row, Col, Tag, Tooltip } from \"antd\";\nimport Classification from \"./Classification\";\nimport { get, initial } from \"lodash-es\";\n\nconst RowDetail = ({ issues, usage, classification, vernacularNames, issueMap }) => (\n <React.Fragment>\n {get(usage, \"id\") && (\n <Row style={{ marginBottom: \"10px\" }}>\n <Col\n span={3}\n style={{\n textAlign: \"right\",\n paddingRight: \"16px\",\n fontWeight: \"bold\"\n }}\n >\n ID:\n </Col>\n <Col span={18}>{get(usage, \"id\")}</Col>\n </Row>\n )}\n {classification && (\n <Row style={{ marginBottom: \"10px\" }}>\n <Col\n span={3}\n style={{\n textAlign: \"right\",\n paddingRight: \"16px\",\n fontWeight: \"bold\"\n }}\n >\n Classification:\n </Col>\n <Col span={18}>\n <Classification\n classification={initial(classification)}\n />\n </Col>\n </Row>\n )}\n {vernacularNames && (\n <Row>\n <Col\n span={3}\n style={{\n textAlign: \"right\",\n paddingRight: \"16px\",\n fontWeight: \"bold\"\n }}\n >\n Vernacular:\n </Col>\n <Col span={18} style={{paddingBottom: \"12px\"}}>\n {vernacularNames.slice(0, 8).map(vn => vn.name).join(\", \")}\n </Col>\n </Row>\n )} \n { /* issues && (\n <Row>\n <Col\n span={3}\n style={{\n textAlign: \"right\",\n paddingRight: \"16px\",\n fontWeight: \"bold\"\n }}\n >\n Issues:\n </Col>\n <Col span={18}>\n {issues.map(i => (\n <Tooltip key={i} title={get(issueMap, `[${i}].description`)}>\n {\" \"}\n <Tag key={i} color={get(issueMap, `[${i}].color`)}>\n {i}\n </Tag>\n </Tooltip>\n ))}\n </Col>\n </Row>\n ) */}\n </React.Fragment>\n);\n\nexport default RowDetail;\n","import React from 'react';\nimport client from \"../api/client\";\nimport config from \"../config\";\nimport { CloseCircleOutlined } from '@ant-design/icons';\nimport { AutoComplete, Input, Button } from 'antd';\nimport { debounce, get } from \"lodash-es\";\nimport Highlighter from \"react-highlight-words\";\n\nconst Option = AutoComplete.Option;\n\nclass DatasetAutocomplete extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.getDatasets = debounce(this.getDatasets, 500);\n\n this.state = {\n datasets: [],\n value: '',\n randomID: (Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)\n }\n }\n\n \n\n componentDidMount = () => {\n const {defaultDatasetKey} = this.props;\n if(defaultDatasetKey){\n this.setDefaultValue(defaultDatasetKey)\n }\n }\n\n componentDidUpdate = (prevProps) => {\n const { defaultDatasetKey} = this.props;\n if(defaultDatasetKey && defaultDatasetKey !== prevProps.defaultDatasetKey){\n this.setDefaultValue(defaultDatasetKey)\n } else if(prevProps.defaultDatasetKey && !defaultDatasetKey){\n this.setState({value: ''})\n }\n }\n\n componentWillUnmount() {\n this.getDatasets.cancel();\n }\n\n setDefaultValue = (defaultDatasetKey) => {\n client(`${config.dataApi}dataset/${defaultDatasetKey}`)\n .then(res => {\n this.setState({value: get(res, 'data.title') || ''})\n this.props.onSelectDataset(res.data)\n })\n }\n\n getDatasets = (q) => {\n const {contributesTo} = this.props;\n client(`${config.dataApi}dataset?q=${q}&limit=30${contributesTo ? '&contributesTo='+contributesTo : ''}`)\n .then((res) => {\n this.setState({ datasets: res.data.result})\n })\n .catch((err) => {\n this.setState({ datasets: [], err })\n })\n }\n onSelectDataset = (val, obj) => {\n this.setState({value: val})\n this.props.onSelectDataset({key: obj.key, title: val})\n }\n onReset = () => {\n this.setState({ value: \"\", names: [] }, this.props.onResetSearch);\n }\n render = () => {\n const {value, randomID} = this.state;\n const {style} = this.props\n // const randomID = (Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1)*(Math.floor(Math.random() * 100) +1);\n \n\n const options = this.state.datasets ? this.state.datasets.map((o) => {\n const text = `${o.alias || o.title} [${o.key}]`;\n return {\n key: o.key,\n value: text,\n label: (\n <Highlighter\n highlightStyle={{ fontWeight: \"bold\", padding: 0 }}\n searchWords={value.split(\" \")}\n autoEscape\n textToHighlight={text}\n />\n ),\n data: o\n }\n \n }) : [];\n\n return <div id={`dataset_autocomplete_${randomID}`}><AutoComplete\n onSelect={this.onSelectDataset}\n onSearch={(q) => (!!q ? this.getDatasets(q) : this.onReset())}\n options={options}\n placeholder={this.props.placeHolder || \"Find dataset\"}\n style={style ? style : { width: '100%' }}\n onChange={(value) => this.setState({value})}\n value={value}\n getPopupContainer={() =>\n document.getElementById(`dataset_autocomplete_${randomID}`)\n }\n >\n <Input.Search allowClear />\n </AutoComplete></div>\n }\n\n}\n\nexport default DatasetAutocomplete;","import React from \"react\";\nimport client from \"../api/client\";\nimport { UpOutlined, DownOutlined } from \"@ant-design/icons\";\nimport { LinkTo } from \"../router\";\nimport { getDatasetSimple } from \"../api/dataset\";\nimport { getTaxGroup } from \"../api/enumeration\";\nimport { readSetting, writeSetting } from \"../storage\";\n\n// Only the Content filter (All/Base/Extended) is remembered across visits —\n// never the query, search fields, or other filters.\nconst CONTENT_TYPE_KEY = \"search-content-type\";\nimport {\n Table,\n Alert,\n Row,\n Col,\n Button,\n Form,\n Radio,\n Select,\n} from \"antd\";\nimport config from \"../config\";\nimport qs from \"query-string\";\nimport Classification from \"./Classification\";\nimport SearchBox from \"./SearchBox\";\nimport MultiValueFilter from \"./MultiValueFilter\";\nimport RowDetail from \"./RowDetail\";\nimport { forEach, get, initial, isArray, isEmpty, isEqual, merge, startCase } from \"lodash-es\";\nimport ErrorMsg from \"../components/ErrorMsg\";\nimport NameAutocomplete from \"../ColTree/NameAutocomplete\";\nimport DatasetAutocomplete from \"../components/DatasetAutocomplete\";\nimport Citation from \"../components/DatasetCitation\";\nimport XrGutter from \"../components/XrGutter\";\n\nconst FormItem = Form.Item;\nconst RadioGroup = Radio.Group;\nconst FACET_VOCAB = [\n \"rank\",\n \"issue\",\n \"status\",\n \"nomStatus\",\n \"nameType\",\n \"field\",\n \"authorship\",\n \"extinct\",\n \"environment\",\n \"group\",\n \"authorshipYear\",\n];\nconst PAGE_SIZE = 50;\nconst FACET_LIMIT = 50;\nconst defaultParams = {\n limit: 50,\n offset: 0,\n facet: FACET_VOCAB, //[\"rank\", \"issue\", \"status\", \"nomStatus\", \"nameType\", \"field\"],\n facetLimit: FACET_LIMIT,\n sortBy: \"relevance\",\n};\n\nconst getColumns = () => [\n {\n title: \"Scientific Name\",\n dataIndex: [\"usage\", \"labelHtml\"],\n key: \"scientificName\",\n render: (text, record) => {\n const id =\n get(record, \"usage.accepted.id\") || get(record, \"usage.id\");\n return (\n <XrGutter\n merged={record?.usage?.merged}\n datasetKey={record?.usage?.datasetKey}\n verbatimSourceKey={record?.usage?.verbatimSourceKey}\n >\n <LinkTo to=\"taxon\" args={id}>\n <span dangerouslySetInnerHTML={{ __html: text }} />\n </LinkTo>\n </XrGutter>\n );\n },\n width: 200,\n sorter: true,\n },\n {\n title: \"Status\",\n dataIndex: [\"usage\", \"status\"],\n key: \"status\",\n width: 200,\n render: (text, record) => {\n return ![\"synonym\", \"ambiguous synonym\", \"misapplied\"].includes(text) ? (\n text\n ) : (\n <React.Fragment key={get(record, \"usage.id\")}>\n {text} {text === \"misapplied\" ? \"to \" : \"of \"}\n <span\n dangerouslySetInnerHTML={{\n __html: get(record, \"usage.accepted.labelHtml\"),\n }}\n />\n </React.Fragment>\n );\n },\n },\n {\n title: \"Rank\",\n dataIndex: [\"usage\", \"name\", \"rank\"],\n key: \"rank\",\n width: 60,\n sorter: true,\n },\n {\n title: \"Classification\",\n dataIndex: [\"usage\", \"classification\"],\n key: \"parents\",\n width: 180,\n render: (text, record) => {\n return !get(record, \"classification\") ? (\n \"\"\n ) : (\n <Classification\n key={get(record, \"usage.id\")}\n classification={initial(record.classification)}\n truncate={true}\n datasetKey={get(record, \"usage.name.datasetKey\")}\n />\n );\n },\n },\n];\n\nclass NameSearchPage extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n data: [],\n advancedFilters: false,\n columns: getColumns(),\n params: {},\n taxGroups: [],\n pagination: {\n pageSize: PAGE_SIZE,\n current: 1,\n showQuickJumper: true,\n pageSizeOptions: [50, 100, 500, 1000],\n },\n loading: false,\n dataset: null,\n };\n }\n\n componentDidMount = async () => {\n this.parseParamsAndGetData();\n const { datasetKey } = this.props;\n // Single dataset lookup. Stores both the descriptor (used by the\n // citation footer when enabled) and the lowercase origin, which gates\n // the source-dataset and Content filter UI.\n try {\n const { data: dataset } = await getDatasetSimple(datasetKey);\n this.setState({\n dataset,\n datasetOrigin: (dataset?.origin || \"\").toLowerCase(),\n });\n } catch (err) {}\n try {\n const taxGroups = await getTaxGroup();\n this.setState({ taxGroups });\n } catch (err) {}\n };\n\n componentDidUpdate = (prevProps) => {\n if (!isEqual(prevProps.filters, this.props.filters)) {\n this.parseParamsAndGetData();\n }\n };\n\n getRank = () => {\n client(`${config.dataApi}vocab/rank`).then((res) =>\n this.setState({ rank: res.data.map((r) => r.name) })\n );\n };\n parseParamsAndGetData = () => {\n const { defaultTaxonKey, filters } = this.props;\n let params = { ...(filters || {}) };\n if (defaultTaxonKey && !params.TAXON_ID) {\n params.TAXON_ID = defaultTaxonKey;\n }\n if (isEmpty(params)) {\n // Fresh visit (clean URL): start from the defaults, but restore the\n // remembered Content filter (All/Base/Extended) if one was saved.\n params = { ...defaultParams };\n const storedContentType = readSetting(CONTENT_TYPE_KEY, undefined);\n if (storedContentType !== undefined && storedContentType !== null) {\n params.sectorMode = storedContentType;\n }\n this.pushParams(params);\n } else if (!params.facet) {\n params.facet = FACET_VOCAB;\n }\n if (!params.facetLimit) {\n params.facetLimit = FACET_LIMIT;\n }\n\n // fuzzy is no longer a separate API parameter; it's now the FUZZY type value\n delete params.fuzzy;\n // the UI only supports fuzzy matching on/off; drop other legacy type values\n if (params.type && String(params.type).toUpperCase() !== \"FUZZY\") {\n delete params.type;\n }\n\n if (!params.limit) {\n params.limit = PAGE_SIZE;\n }\n if (!params.offset) {\n params.offset = 0;\n }\n this.setState(\n {\n params,\n pagination: {\n pageSize: params.limit || PAGE_SIZE,\n current:\n Number(params.offset || 0) / Number(params.limit || PAGE_SIZE) + 1,\n showQuickJumper: true,\n pageSizeOptions: [50, 100, 500, 1000],\n },\n },\n this.getData\n );\n };\n\n pushParams = (params) => {\n const next = { ...params };\n if (!next.q) delete next.q;\n if (this.props.onFiltersChange) this.props.onFiltersChange(next);\n };\n\n getData = () => {\n const { params } = this.state;\n this.setState({ loading: true });\n const { datasetKey } = this.props;\n\n const url = `${config.dataApi}dataset/${datasetKey}/nameusage/search`;\n const params_ = get(params, \"status\")\n ? params\n : { ...params, status: \"_NOT_NULL\" };\n client(`${url}?${qs.stringify(params_)}`)\n .then((res) => {\n const pagination = { ...this.state.pagination };\n pagination.total = res.data.total;\n\n this.setState({\n loading: false,\n data: res.data,\n err: null,\n pagination,\n });\n })\n .catch((err) => {\n this.setState({ loading: false, error: err, data: [] });\n });\n };\n handleTableChange = (pagination, filters, sorter) => {\n let query = merge(this.state.params, {\n limit: pagination.pageSize,\n offset: (pagination.current - 1) * pagination.pageSize,\n ...filters,\n });\n if (sorter && sorter.field) {\n if (sorter.field[sorter.field.length - 1] === \"labelHtml\") {\n query.sortBy = \"name\";\n } else if (sorter.field[sorter.field.length - 1] === \"rank\") {\n query.sortBy = \"taxonomic\";\n } else {\n query.sortBy = sorter.field[sorter.field.length - 1];\n }\n }\n if (sorter && sorter.order === \"descend\") {\n query.reverse = true;\n } else {\n query.reverse = false;\n }\n this.setState({ params: query }, () => this.pushParams(query));\n };\n\n updateSearch = (params) => {\n // Remember the Content filter (All/Base/Extended) across visits.\n if (\"sectorMode\" in params) writeSetting(CONTENT_TYPE_KEY, params.sectorMode);\n let newParams = { ...this.state.params, offset: 0, limit: 50 };\n forEach(params, (v, k) => {\n newParams[k] = v;\n });\n const notNullParams = Object.keys(newParams).reduce(\n (acc, cur) => (\n newParams[cur] !== null && (acc[cur] = newParams[cur]), acc\n ),\n {}\n );\n this.setState({ params: notNullParams }, () =>\n this.pushParams(notNullParams)\n );\n };\n\n resetSearch = () => {\n this.setState(\n {\n params: defaultParams,\n },\n () => this.pushParams(defaultParams)\n );\n };\n\n toggleAdvancedFilters = () => {\n this.setState({ advancedFilters: !this.state.advancedFilters });\n };\n\n render() {\n const {\n data: { result, facets },\n loading,\n error,\n params,\n pagination,\n advancedFilters,\n dataset,\n taxGroups,\n } = this.state;\n const { datasetKey, defaultTaxonKey, citation } = this.props;\n const isFuzzy = String(params.type || \"\").toUpperCase() === \"FUZZY\";\n const facetRanks = get(facets, \"rank\")\n ? facets.rank.map((r) => ({\n value: r.value,\n label: `${startCase(r.value)} (${r.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetIssues = get(facets, \"issue\")\n ? facets.issue.map((i) => ({\n value: i.value,\n label: `${startCase(i.value)} (${i.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetTaxonomicStatus = get(facets, \"status\")\n ? facets.status.map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetNomStatus = get(facets, \"nomStatus\")\n ? facets.nomStatus.map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetNomType = get(facets, \"nameType\")\n ? facets.nameType.map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetNomField = get(facets, \"field\")\n ? facets.field.map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : null;\n const facetAuthorship = get(facets, \"authorship\")\n ? facets[\"authorship\"].map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : [];\n const extinctLabel = (v) => {\n if (v === \"1\" || v === true || v === \"true\") return \"Extinct\";\n if (v === \"0\" || v === false || v === \"false\") return \"Extant\";\n return \"Unknown\";\n };\n const facetExtinct = get(facets, \"extinct\")\n ? facets[\"extinct\"].map((s) => ({\n value: s.value,\n label: `${extinctLabel(s?.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : [];\n const facetEnvironment = get(facets, \"environment\")\n ? facets[\"environment\"].map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : [];\n const facetGroup = get(facets, \"group\")\n ? facets[\"group\"].map((s) => ({\n value: s.value,\n label: `${startCase(s.value)} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : [];\n const facetAuthorshipYear = get(facets, \"authorshipYear\")\n ? facets[\"authorshipYear\"].map((s) => ({\n value: s.value,\n label: `${s.value} (${s.count.toLocaleString(\"en-GB\")})`,\n }))\n : [];\n\n return (\n <div\n className=\"catalogue-of-life\"\n style={{\n padding: 24,\n minHeight: 280,\n margin: \"16px 0\",\n }}\n >\n {citation === \"top\" && dataset && <Citation dataset={dataset} />}\n\n <Row>\n {error && (\n <Alert\n style={{ marginBottom: \"10px\" }}\n message={<ErrorMsg error={error} />}\n type=\"error\"\n />\n )}\n </Row>\n <Row>\n <Col xs={24} sm={24} md={12} style={{ marginBottom: \"8px\" }}>\n <SearchBox\n defaultValue={get(this.props.filters || {}, \"q\")}\n onSearch={(value) => this.updateSearch({ q: value })}\n onResetSearch={(value) => this.updateSearch({ q: null })}\n style={{ marginBottom: \"8px\", width: \"100%\" }}\n />\n\n <NameAutocomplete\n datasetKey={datasetKey}\n minRank=\"GENUS\"\n defaultTaxonKey={\n get(params, \"TAXON_ID\") || defaultTaxonKey || null\n }\n onSelectName={(value) => {\n this.updateSearch({ TAXON_ID: value.key });\n }}\n onResetSearch={(value) => {\n this.updateSearch({ TAXON_ID: null });\n }}\n placeHolder=\"Filter by higher taxon\"\n sortBy=\"relevance\"\n autoFocus={false}\n />\n\n {(this.state.datasetOrigin === \"xrelease\" ||\n this.state.datasetOrigin === \"release\") && (\n <div style={{ marginTop: \"8px\", marginBottom: \"8px\" }}>\n <DatasetAutocomplete\n contributesTo={Number(datasetKey)}\n onSelectDataset={(value) => {\n this.updateSearch({ SECTOR_DATASET_KEY: value.key });\n }}\n defaultDatasetKey={\n get(params, \"SECTOR_DATASET_KEY\") || null\n }\n onResetSearch={(value) => {\n this.updateSearch({ SECTOR_DATASET_KEY: null });\n }}\n placeHolder=\"Filter by source dataset\"\n autoFocus={false}\n />\n </div>\n )}\n <div style={{ marginTop: \"10px\" }}>\n <Form layout=\"inline\">\n {(this.state.datasetOrigin === \"xrelease\" ||\n this.state.datasetOrigin === \"project\") && (\n <FormItem label=\"Content\">\n <RadioGroup\n style={{ marginLeft: \"8px\" }}\n size=\"small\"\n onChange={(evt) => {\n this.updateSearch({ sectorMode: evt.target.value.split(\",\")\n .filter((v) => v !== \"\")});\n }}\n value={isArray(params?.sectorMode) ? params?.sectorMode?.join(\",\") : params?.sectorMode || \"\"}\n optionType=\"button\"\n options={[\n { value: \"\", label: \"All\" },\n { value: \"attach,union\", label: \"Base\" },\n { value: \"merge\", label: \"Extended\" },\n ]}\n ></RadioGroup>\n </FormItem>\n )}\n <FormItem>\n <Select\n mode=\"multiple\"\n allowClear\n size=\"small\"\n style={{ minWidth: 200 }}\n placeholder=\"Search fields\"\n value={isArray(params?.content) ? params.content : (params?.content ? [params.content] : [])}\n onChange={(value) => this.updateSearch({ content: value.length ? value : null })}\n options={[\n { value: \"SCIENTIFIC_NAME\", label: \"Scientific name\" },\n { value: \"AUTHORSHIP\", label: \"Authorship\" },\n { value: \"VERNACULAR_NAME\", label: \"Vernacular name\" },\n ]}\n />\n </FormItem>\n <FormItem>\n <Button\n size=\"small\"\n // match the checked Radio.Button look of the Content selector:\n // primary-coloured outline & text, default background\n color={isFuzzy ? \"primary\" : \"default\"}\n variant=\"outlined\"\n aria-pressed={isFuzzy}\n onClick={() =>\n this.updateSearch({ type: isFuzzy ? null : \"FUZZY\" })\n }\n >\n Fuzzy\n </Button>\n </FormItem>\n </Form>\n \n </div>\n </Col>\n <Col xs={24} sm={24} md={12}>\n {/* <MultiValueFilter\n defaultValue={get(params, \"issue\")}\n onChange={value => this.updateSearch({ issue: value })}\n vocab={facetIssues || []}\n label=\"Issues\"\n /> */}\n\n <MultiValueFilter\n defaultValue={get(params, \"rank\")}\n onChange={(value) => this.updateSearch({ rank: value })}\n vocab={facetRanks || []}\n label=\"Ranks\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"status\")}\n onChange={(value) => this.updateSearch({ status: value })}\n vocab={facetTaxonomicStatus || []}\n label=\"Status\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"environment\")}\n onChange={(value) =>\n this.updateSearch({ environment: value })\n }\n vocab={facetEnvironment}\n label=\"Environment\"\n />\n <MultiValueFilter\n // defaultValue={get(params, \"extinct\")}\n onChange={(value) => this.updateSearch({ extinct: value })}\n vocab={facetExtinct}\n label=\"Extinct\"\n />\n {advancedFilters && (\n <React.Fragment>\n <MultiValueFilter\n defaultValue={get(params, \"nomstatus\")}\n onChange={(value) => this.updateSearch({ nomstatus: value })}\n vocab={facetNomStatus || []}\n label=\"Nomenclatural status\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"nameType\")}\n onChange={(value) => this.updateSearch({ nameType: value })}\n vocab={facetNomType || []}\n label=\"Name type\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"field\")}\n onChange={(value) => this.updateSearch({ field: value })}\n vocab={facetNomField || []}\n label=\"Name field\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"authorship\")}\n onChange={(value) => this.updateSearch({ authorship: value })}\n vocab={facetAuthorship}\n label=\"Authorship\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"group\")}\n onChange={(value) => this.updateSearch({ group: value })}\n vocab={facetGroup}\n label=\"Taxonomic group\"\n />\n <MultiValueFilter\n defaultValue={get(params, \"authorshipYear\")}\n onChange={(value) => this.updateSearch({ authorshipYear: value })}\n vocab={facetAuthorshipYear}\n label=\"Authorship year\"\n />\n </React.Fragment>\n )}\n <div style={{ textAlign: \"right\", marginBottom: \"8px\" }}>\n <a\n style={{ marginLeft: 8, fontSize: 12 }}\n onClick={this.toggleAdvancedFilters}\n >\n Advanced{\" \"}\n {this.state.advancedFilters ? <UpOutlined /> : <DownOutlined />}\n </a>\n </div>\n </Col>\n </Row>\n <Row>\n <Col span={12} style={{ textAlign: \"left\", marginBottom: \"8px\" }}>\n <Button type=\"primary\" danger onClick={this.resetSearch}>\n Reset all\n </Button>\n </Col>\n <Col span={12} style={{ textAlign: \"right\", marginBottom: \"8px\" }}>\n {pagination &&\n !isNaN(pagination.total) &&\n `results: ${pagination.total.toLocaleString(\"en-GB\")}`}\n </Col>\n </Row>\n {!error && (\n <Table\n size=\"small\"\n columns={this.state.columns}\n scroll={{ x: \"max-content\" }}\n dataSource={result}\n loading={loading}\n pagination={this.state.pagination}\n onChange={this.handleTableChange}\n rowKey={(record) => record.usage.id}\n showSorterTooltip={false}\n expandedRowRender={(record) => (\n <RowDetail\n {...record}\n datasetKey={datasetKey}\n />\n )}\n />\n )}\n {citation === \"bottom\" && dataset && <Citation dataset={dataset} />}\n </div>\n );\n }\n}\n\nexport default NameSearchPage;\n","import React from \"react\";\nimport NameSearch from \"./NameSearch\";\nimport client, { setAuth } from \"../api/client\";\nimport { RouterContext, buildRouter } from \"../router\";\n\nexport default function Search({\n datasetKey,\n filters,\n onFiltersChange,\n defaultTaxonKey,\n citation,\n auth,\n ...routerProps\n}) {\n setAuth(auth);\n return (\n <RouterContext.Provider value={buildRouter(routerProps)}>\n <NameSearch\n datasetKey={datasetKey}\n filters={filters}\n onFiltersChange={onFiltersChange}\n defaultTaxonKey={defaultTaxonKey}\n citation={citation}\n />\n </RouterContext.Provider>\n );\n}\n","import withDatasetKey from \"../withDatasetKey\";\nimport { withTheme } from \"../withTheme\";\nimport search from \"../Search\";\n\nexport const Search = withTheme(withDatasetKey(search));\n"],"names":["DownOutlined","_extends","target","source","key","props","ref","React","AntdIcon","DownOutlinedSvg","RefIcon","UpOutlined","UpOutlinedSvg","ranks","Classification","classification","maxParents","truncate","clazzification","classificationRankMap","acc","curr","kingdom","familyOrClosestAlternative","i","jsxs","jsx","LinkTo","t","Search","Input","SearchBox","__publicField","prevProps","value","event","FormItem","Form","Option","Select","formItemLayout","MultiValueFilter","selected","defaultValue","label","vocab","randomID","vocabKeys","val","isArray","v","snakeCase","RowDetail","issues","usage","vernacularNames","issueMap","get","Row","Col","initial","vn","AutoComplete","DatasetAutocomplete","defaultDatasetKey","client","config","res","q","contributesTo","err","obj","style","options","o","text","Highlighter","debounce","CONTENT_TYPE_KEY","RadioGroup","Radio","FACET_VOCAB","PAGE_SIZE","FACET_LIMIT","defaultParams","getColumns","record","id","XrGutter","_a","_b","_c","NameSearchPage","datasetKey","dataset","getDatasetSimple","taxGroups","getTaxGroup","isEqual","r","defaultTaxonKey","filters","params","isEmpty","storedContentType","readSetting","next","url","params_","qs","pagination","sorter","query","merge","writeSetting","newParams","forEach","k","notNullParams","cur","result","facets","loading","error","advancedFilters","citation","isFuzzy","facetRanks","startCase","facetTaxonomicStatus","s","facetNomStatus","facetNomType","facetNomField","facetAuthorship","extinctLabel","facetExtinct","facetEnvironment","facetGroup","facetAuthorshipYear","Citation","Alert","ErrorMsg","NameAutocomplete","evt","Button","Table","onFiltersChange","auth","routerProps","setAuth","RouterContext","buildRouter","NameSearch","withTheme","withDatasetKey","search"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,IAAIA,KAAe,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,4LAA2L,GAAI,EAAC,GAAI,MAAQ,QAAQ,OAAS,WAAU;ACDjY,SAASC,IAAW;AAAEA,SAAAA,IAAW,OAAO,SAAS,OAAO,OAAO,SAAS,SAAUC,GAAQ;AAAE,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,UAAIC,IAAS,UAAU,CAAC;AAAG,eAASC,KAAOD;AAAU,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQC,CAAG,MAAKF,EAAOE,CAAG,IAAID,EAAOC,CAAG;AAAA,IAAO;AAAE,WAAOF;AAAA,EAAQ,GAAUD,EAAS,MAAM,MAAM,SAAS;AAAG;AAOlV,MAAMD,KAAe,CAACK,GAAOC,MAAqB,gBAAAC,EAAM,cAAcC,GAAUP,EAAS,CAAA,GAAII,GAAO;AAAA,EAClG,KAAKC;AAAA,EACL,MAAMG;AACR,CAAC,CAAC,GAGIC,IAAuB,gBAAAH,EAAM,WAAWP,EAAY;AACtD,QAAQ,IAAI,aAAa,iBAC3BU,EAAQ,cAAc;ACdxB,IAAIC,KAAa,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,oLAAmL,GAAI,EAAC,GAAI,MAAQ,MAAM,OAAS,WAAU;ACDrX,SAASV,IAAW;AAAE,SAAAA,IAAW,OAAO,SAAS,OAAO,OAAO,SAAS,SAAUC,GAAQ;AAAE,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,UAAIC,IAAS,UAAU,CAAC;AAAG,eAASC,KAAOD;AAAU,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQC,CAAG,MAAKF,EAAOE,CAAG,IAAID,EAAOC,CAAG;AAAA,IAAO;AAAE,WAAOF;AAAA,EAAQ,GAAUD,EAAS,MAAM,MAAM,SAAS;AAAG;AAOlV,MAAMU,KAAa,CAACN,GAAOC,MAAqB,gBAAAC,EAAM,cAAcC,GAAUP,EAAS,CAAA,GAAII,GAAO;AAAA,EAChG,KAAKC;AAAA,EACL,MAAMM;AACR,CAAC,CAAC,GAGIF,IAAuB,gBAAAH,EAAM,WAAWI,EAAU;AACpD,QAAQ,IAAI,aAAa,iBAC3BD,EAAQ,cAAc;ACZxB,MAAMG,IAAQ,CAAC,UAAU,eAAe,SAAS,YAAY,SAAS,cAAc,aAAa,QAAQ,GAEzGC,IAAe,CAAC,EAAE,gBAAAC,GAAgB,YAAAC,IAAaD,EAAe,QAAQ,UAAAE,QAAe;AACjF,QAAMC,IAAiBH,EAAe,MAAM,KAAK,IAAIA,EAAe,SAASC,CAAU,CAAC;AACxF,MAAIC,GAAU;AACV,UAAME,IAAwBJ,EAAe,OAAO,CAACK,GAAKC,OAAUD,EAAIC,EAAK,IAAI,IAAIA,GAAMD,IAAM,CAAA,CAAE,GAE7FE,IAAUH,EAAsB;AACtC,QAAII;AACJ,aAASC,IAAI,GAAGA,IAAIX,EAAM,QAAQW;AAC9B,UAAIL,EAAsBN,EAAMW,CAAC,CAAC,GAAG;AACjC,QAAAD,IAA6BJ,EAAsBN,EAAMW,CAAC,CAAC;AAC3D;AAAA,MACJ;AAEJ,WAAIF,KAAWC,IAEPE,gBAAAA,OAAClB,EAAM,UAAN,EACG,UAAA;AAAA,MAAAmB,gBAAAA,EAAAA,IAACC,KAAO,IAAG,SAAQ,MAAML,EAAQ,IAAK,YAAQ,KAAA,CAAK;AAAA,MAClDC,EAA2B,SAAS,WAAW,QAAQ;AAAA,MACxDG,gBAAAA,EAAAA,IAACC,KAAO,IAAG,SAAQ,MAAMJ,EAA2B,IAAK,YAA2B,KAAA,CAAK;AAAA,IAAA,GAC7F,IAEGD,IACAI,gBAAAA,MAACC,KAAO,IAAG,SAAQ,MAAML,EAAQ,IAAK,YAAQ,KAAA,CAAK,IAEnD;AAAA,EAEf;AACI,WAAOJ,EAAe,IAAI,CAACU,GAAGxB,MAC1BqB,gBAAAA,EAAAA,KAAClB,EAAM,UAAN,EACG,UAAA;AAAA,MAAAmB,gBAAAA,EAAAA,IAACC,KAAO,IAAG,SAAQ,MAAMC,EAAE,IAAK,YAAE,KAAA,CAAK;AAAA,MACtC,CAAC,OAAO,GAAGV,EAAe,SAAS,GAAGd,CAAG,KAAK;AAAA,IAAA,EAAA,GAF9BA,CAGrB,CACH;AAET,GCnCMyB,KAASC,EAAM;AAErB,MAAMC,WAAkBxB,EAAM,UAAU;AAAA,EACtC,YAAYF,GAAO;AACjB,UAAMA,CAAK;AAKb,IAAA2B,EAAA,2BAAoB,MAAM;AACxB,MAAI,KAAK,MAAM,gBACb,KAAK,SAAS,EAAE,QAAQ,KAAK,MAAM,cAAc;AAAA,IAErD;AACA,IAAAA,EAAA,4BAAqB,CAACC,MAAc;AAElC,MAAIA,EAAU,iBAAiB,KAAK,MAAM,gBACxC,KAAK,SAAS,EAAE,QAAQ,KAAK,MAAM,cAAa;AAAA,IAEpD;AAEA,IAAAD,EAAA,qBAAc,MAAM;AAClB,WAAK,SAAS,EAAE,QAAQ,GAAA,GAAM,MAAM;AAClC,aAAK,MAAM,SAAS,KAAK,MAAM,MAAM;AAAA,MACvC,CAAC;AAAA,IACH;AACA,IAAAA,EAAA,gBAAS,MAGLN,gBAAAA,EAAAA;AAAAA,MAACG;AAAAA,MAAA;AAAA,QACC,OAAO,KAAK,MAAM,SAAS;AAAA,QAC3B,aAAY;AAAA,QACZ,OAAO,KAAK,MAAM;AAAA,QAClB,UAAU,CAAAK,MAAS,KAAK,MAAM,SAAS,KAAK,MAAM,MAAM;AAAA,QACxD,UAAU,OAAS,KAAK,SAAS,EAAE,QAAQC,EAAM,OAAO,OAAM;AAAA,QAC9D,YAAY,KAAK,MAAM;AAAA,QACvB,YAAU;AAAA,QACV,WAAW;AAAA,MAAA;AAAA,IAAA;AAhCf,SAAK,QAAQ;AAAA,MACX,QAAQ;AAAA,IAAA;AAAA,EAEZ;AAiCF;ACvCA,MAAMC,KAAWC,EAAK,MAEhBC,IAASC,EAAO,QAEhBC,KAAiB;AAAA,EACnB,UAAU;AAAA,IACR,IAAI,EAAE,MAAM,GAAA;AAAA,IACZ,IAAI,EAAE,MAAM,GAAA;AAAA,IACZ,IAAI,EAAE,MAAM,EAAA;AAAA,EAAE;AAAA,EAEhB,YAAY;AAAA,IACV,IAAI,EAAE,MAAM,GAAA;AAAA,IACZ,IAAI,EAAE,MAAM,GAAA;AAAA,IACZ,IAAI,EAAE,MAAM,GAAA;AAAA,EAAG;AAEnB;AAEF,MAAMC,UAAyBlC,EAAM,UAAU;AAAA,EAC7C,YAAYF,GAAO;AACjB,UAAMA,CAAK;AAQb,IAAA2B,EAAA,sBAAe,CAAAU,MAAY;AAEzB,WAAK,SAAS,EAAE,UAAAA,EAAA,GAAY,MAAM;AAChC,aAAK,MAAM,SAASA,CAAQ;AAAA,MAC9B,CAAC;AAAA,IACH;AAEA,IAAAV,EAAA,gBAAS,MAAM;AACb,YAAM,EAAC,cAAAW,GAAc,OAAAC,GAAO,OAAAC,EAAA,IAAS,KAAK,OACpC,EAAC,UAAAC,MAAY,KAAK,OAElBC,IAAY,oBAAI,IAAI,CAAC,GAAGF,EAAM,IAAI,CAAArB,MAAKA,EAAE,KAAK,CAAC,CAAC;AACtD,UAAIwB;AACJ,aAAGL,KAAgBM,EAAQN,CAAY,IACrCK,IAAML,EAAa,OAAO,CAAAO,MAAKH,EAAU,IAAIG,CAAC,CAAC,IACvCP,MACRK,IAAM,CAACL,CAAY,EAAE,OAAO,OAAKI,EAAU,IAAIG,CAAC,CAAC,IAG/CxB,gBAAAA,EAAAA;AAAAA,QAACU;AAAAA,QAAA;AAAA,UACD,GAAGI;AAAA,UACH,OAAAI;AAAA,UACA,OAAO,EAAC,cAAc,OAAO,OAAO,OAAA;AAAA,UAEpC,UAAAlB,gBAAAA,EAAAA,IAAC,SAAI,IAAI,GAAGyB,EAAUP,CAAK,CAAC,IAAIE,CAAQ,IAC1C,UAAApB,gBAAAA,EAAAA;AAAAA,YAACa;AAAA,YAAA;AAAA,cACC,YAAU;AAAA,cAEV,MAAK;AAAA,cACL,aAAY;AAAA,cACZ,OAAOS;AAAA,cACP,UAAU,KAAK;AAAA,cACf,mBAAmB,MACjB,SAAS,eAAe,GAAGG,EAAUP,CAAK,CAAC,IAAIE,CAAQ,EAAE;AAAA,cAGxD,UAAAD,EAAM,IAAI,CAACrB,MACE,OAAOA,KAAM,WAAYE,gBAAAA,EAAAA,IAACY,KAAe,OAAOd,GAAI,YAAUA,CAAC,EAAA,GAAzBA,CAA2B,IAAYE,gBAAAA,MAACY,KAAqB,OAAOd,EAAE,OAAQ,UAAAA,EAAE,SAA5BA,EAAE,KAAgC,CACrI;AAAA,YAAA;AAAA,UAAA,EACT,CACA;AAAA,QAAA;AAAA,MAAA;AAAA,IAGJ;AAlDE,SAAK,QAAQ;AAAA,MACX,UAAU,KAAK,MAAM;AAAA,MACrB,WAAW,KAAK,MAAM,KAAK,WAAW,GAAG,IAAG,MAAI,KAAK,MAAM,KAAK,OAAA,IAAW,GAAG,IAAG,MAAI,KAAK,MAAM,KAAK,OAAA,IAAW,GAAG,IAAG;AAAA,IAAA;AAAA,EAE1H;AA+CF;ACxEA,MAAM4B,KAAY,CAAC,EAAE,QAAAC,GAAQ,OAAAC,GAAO,gBAAAvC,GAAgB,iBAAAwC,GAAiB,UAAAC,EAAA,MACnE/B,gBAAAA,EAAAA,KAAClB,EAAM,UAAN,EACE,UAAA;AAAA,EAAAkD,EAAIH,GAAO,IAAI,KACd7B,gBAAAA,OAACiC,KAAI,OAAO,EAAE,cAAc,OAAA,GAC1B,UAAA;AAAA,IAAAhC,gBAAAA,EAAAA;AAAAA,MAACiC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,OAAO;AAAA,UACL,WAAW;AAAA,UACX,cAAc;AAAA,UACd,YAAY;AAAA,QAAA;AAAA,QAEf,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,0BAGAA,GAAA,EAAI,MAAM,IAAK,UAAAF,EAAIH,GAAO,IAAI,EAAA,CAAE;AAAA,EAAA,GACnC;AAAA,EAEDvC,KACCU,gBAAAA,EAAAA,KAACiC,GAAA,EAAI,OAAO,EAAE,cAAc,UAC1B,UAAA;AAAA,IAAAhC,gBAAAA,EAAAA;AAAAA,MAACiC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,OAAO;AAAA,UACL,WAAW;AAAA,UACX,cAAc;AAAA,UACd,YAAY;AAAA,QAAA;AAAA,QAEf,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGDjC,gBAAAA,EAAAA,IAACiC,GAAA,EAAI,MAAM,IACT,UAAAjC,gBAAAA,EAAAA;AAAAA,MAACZ;AAAA,MAAA;AAAA,QACC,gBAAgB8C,EAAQ7C,CAAc;AAAA,MAAA;AAAA,IAAA,EACxC,CACF;AAAA,EAAA,GACF;AAAA,EAEDwC,4BACEG,GAAA,EACC,UAAA;AAAA,IAAAhC,gBAAAA,EAAAA;AAAAA,MAACiC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,OAAO;AAAA,UACL,WAAW;AAAA,UACX,cAAc;AAAA,UACd,YAAY;AAAA,QAAA;AAAA,QAEf,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGDjC,gBAAAA,MAACiC,KAAI,MAAM,IAAI,OAAO,EAAC,eAAe,UACnC,UAAAJ,EAAgB,MAAM,GAAG,CAAC,EAAE,IAAI,CAAAM,MAAMA,EAAG,IAAI,EAAE,KAAK,IAAI,EAAA,CAC3D;AAAA,EAAA,EAAA,CACF;AAAA,GA0BJ;AC1EaC,EAAa;AAE5B,MAAMC,WAA4BxD,EAAM,UAAU;AAAA,EAE9C,YAAYF,GAAO;AACf,UAAMA,CAAK;AAaf,IAAA2B,EAAA,2BAAoB,MAAM;AACtB,YAAM,EAAC,mBAAAgC,MAAqB,KAAK;AACjC,MAAGA,KACC,KAAK,gBAAgBA,CAAiB;AAAA,IAE9C;AAEA,IAAAhC,EAAA,4BAAqB,CAACC,MAAc;AAChC,YAAM,EAAE,mBAAA+B,MAAqB,KAAK;AAClC,MAAGA,KAAqBA,MAAsB/B,EAAU,oBACpD,KAAK,gBAAgB+B,CAAiB,IAChC/B,EAAU,qBAAqB,CAAC+B,KACtC,KAAK,SAAS,EAAC,OAAO,GAAA,CAAG;AAAA,IAEjC;AAMA,IAAAhC,EAAA,yBAAkB,CAACgC,MAAsB;AACrC,MAAAC,EAAO,GAAGC,EAAO,OAAO,WAAWF,CAAiB,EAAE,EACjD,KAAK,CAAAG,MAAO;AACT,aAAK,SAAS,EAAC,OAAOV,EAAIU,GAAK,YAAY,KAAK,IAAG,GACnD,KAAK,MAAM,gBAAgBA,EAAI,IAAI;AAAA,MACvC,CAAC;AAAA,IACT;AAEA,IAAAnC,EAAA,qBAAc,CAACoC,MAAM;AACjB,YAAM,EAAC,eAAAC,MAAiB,KAAK;AAC7B,MAAAJ,EAAO,GAAGC,EAAO,OAAO,aAAaE,CAAC,YAAYC,IAAgB,oBAAkBA,IAAgB,EAAE,EAAE,EACnG,KAAK,CAACF,MAAQ;AACX,aAAK,SAAS,EAAE,UAAUA,EAAI,KAAK,QAAO;AAAA,MAC9C,CAAC,EACA,MAAM,CAACG,MAAQ;AACZ,aAAK,SAAS,EAAE,UAAU,CAAA,GAAI,KAAAA,GAAK;AAAA,MACvC,CAAC;AAAA,IACT;AACA,IAAAtC,EAAA,yBAAkB,CAACgB,GAAKuB,MAAQ;AAC5B,WAAK,SAAS,EAAC,OAAOvB,EAAA,CAAI,GAC1B,KAAK,MAAM,gBAAgB,EAAC,KAAKuB,EAAI,KAAK,OAAOvB,GAAI;AAAA,IACzD;AACA,IAAAhB,EAAA,iBAAU,MAAM;AACZ,WAAK,SAAS,EAAE,OAAO,IAAI,OAAO,CAAA,KAAM,KAAK,MAAM,aAAa;AAAA,IACpE;AACA,IAAAA,EAAA,gBAAS,MAAM;AACX,YAAM,EAAC,OAAAE,GAAO,UAAAY,EAAA,IAAY,KAAK,OACzB,EAAC,OAAA0B,MAAS,KAAK,OAIbC,IAAU,KAAK,MAAM,WAAW,KAAK,MAAM,SAAS,IAAI,CAACC,MAAM;AACjE,cAAMC,IAAO,GAAGD,EAAE,SAASA,EAAE,KAAK,KAAKA,EAAE,GAAG;AAC5C,eAAO;AAAA,UACL,KAAKA,EAAE;AAAA,UACP,OAAOC;AAAA,UACP,OACIjD,gBAAAA,EAAAA;AAAAA,YAACkD;AAAA,YAAA;AAAA,cACH,gBAAgB,EAAE,YAAY,QAAQ,SAAS,EAAA;AAAA,cAC/C,aAAa1C,EAAM,MAAM,GAAG;AAAA,cAC5B,YAAU;AAAA,cACV,iBAAiByC;AAAA,YAAA;AAAA,UAAA;AAAA,UAGnB,MAAMD;AAAA,QAAA;AAAA,MAGZ,CAAC,IAAI,CAAA;AAEP,aAAOhD,gBAAAA,EAAAA,IAAC,OAAA,EAAI,IAAI,wBAAwBoB,CAAQ,IAAI,UAAApB,gBAAAA,EAAAA;AAAAA,QAACoC;AAAA,QAAA;AAAA,UACjD,UAAU,KAAK;AAAA,UACf,UAAU,CAACM,MAASA,IAAI,KAAK,YAAYA,CAAC,IAAI,KAAK,QAAA;AAAA,UACnD,SAAAK;AAAA,UACA,aAAa,KAAK,MAAM,eAAe;AAAA,UACvC,OAAOD,KAAgB,EAAE,OAAO,OAAA;AAAA,UAChC,UAAU,CAACtC,MAAU,KAAK,SAAS,EAAC,OAAAA,GAAM;AAAA,UAC1C,OAAAA;AAAA,UACA,mBAAmB,MACf,SAAS,eAAe,wBAAwBY,CAAQ,EAAE;AAAA,UAG9D,UAAApB,gBAAAA,EAAAA,IAACI,EAAM,QAAN,EAAa,YAAU,GAAA,CAAC;AAAA,QAAA;AAAA,MAAA,GACd;AAAA,IACnB;AA9FI,SAAK,cAAc+C,GAAS,KAAK,aAAa,GAAG,GAEjD,KAAK,QAAQ;AAAA,MACT,UAAU,CAAA;AAAA,MACV,OAAO;AAAA,MACP,WAAW,KAAK,MAAM,KAAK,WAAW,GAAG,IAAG,MAAI,KAAK,MAAM,KAAK,OAAA,IAAW,GAAG,IAAG,MAAI,KAAK,MAAM,KAAK,OAAA,IAAW,GAAG,IAAG;AAAA,IAAA;AAAA,EAE9H;AAAA,EAoBA,uBAAuB;AACnB,SAAK,YAAY,OAAA;AAAA,EACrB;AAmEJ;ACrGA,MAAMC,IAAmB,uBAwBnB1C,IAAWC,EAAK,MAChB0C,KAAaC,GAAM,OACnBC,IAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GACMC,IAAY,IACZC,IAAc,IACdC,IAAgB;AAAA,EACpB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAOH;AAAA;AAAA,EACP,YAAYE;AAAA,EACZ,QAAQ;AACV,GAEME,KAAa,MAAM;AAAA,EACvB;AAAA,IACE,OAAO;AAAA,IACP,WAAW,CAAC,SAAS,WAAW;AAAA,IAChC,KAAK;AAAA,IACL,QAAQ,CAACV,GAAMW,MAAW;;AACxB,YAAMC,IACJ9B,EAAI6B,GAAQ,mBAAmB,KAAK7B,EAAI6B,GAAQ,UAAU;AAC5D,aACE5D,gBAAAA,EAAAA;AAAAA,QAAC8D;AAAA,QAAA;AAAA,UACC,SAAQC,IAAAH,KAAA,gBAAAA,EAAQ,UAAR,gBAAAG,EAAe;AAAA,UACvB,aAAYC,IAAAJ,KAAA,gBAAAA,EAAQ,UAAR,gBAAAI,EAAe;AAAA,UAC3B,oBAAmBC,IAAAL,KAAA,gBAAAA,EAAQ,UAAR,gBAAAK,EAAe;AAAA,UAElC,UAAAjE,gBAAAA,EAAAA,IAACC,GAAA,EAAO,IAAG,SAAQ,MAAM4D,GACvB,UAAA7D,gBAAAA,EAAAA,IAAC,QAAA,EAAK,yBAAyB,EAAE,QAAQiD,EAAA,GAAQ,EAAA,CACnD;AAAA,QAAA;AAAA,MAAA;AAAA,IAGN;AAAA,IACA,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,OAAO;AAAA,IACP,WAAW,CAAC,SAAS,QAAQ;AAAA,IAC7B,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ,CAACA,GAAMW,MACL,CAAC,WAAW,qBAAqB,YAAY,EAAE,SAASX,CAAI,IAGlElD,gBAAAA,EAAAA,KAAClB,EAAM,UAAN,EACE,UAAA;AAAA,MAAAoE;AAAA,MAAK;AAAA,MAAEA,MAAS,eAAe,QAAQ;AAAA,MACxCjD,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,yBAAyB;AAAA,YACvB,QAAQ+B,EAAI6B,GAAQ,0BAA0B;AAAA,UAAA;AAAA,QAChD;AAAA,MAAA;AAAA,IACF,EAAA,GANmB7B,EAAI6B,GAAQ,UAAU,CAO3C,IATAX;AAAA,EAWJ;AAAA,EAEF;AAAA,IACE,OAAO;AAAA,IACP,WAAW,CAAC,SAAS,QAAQ,MAAM;AAAA,IACnC,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA;AAAA,EAEV;AAAA,IACE,OAAO;AAAA,IACP,WAAW,CAAC,SAAS,gBAAgB;AAAA,IACrC,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ,CAACA,GAAMW,MACL7B,EAAI6B,GAAQ,gBAAgB,IAGlC5D,gBAAAA,EAAAA;AAAAA,MAACZ;AAAA,MAAA;AAAA,QAEC,gBAAgB8C,EAAQ0B,EAAO,cAAc;AAAA,QAC7C,UAAU;AAAA,QACV,YAAY7B,EAAI6B,GAAQ,uBAAuB;AAAA,MAAA;AAAA,MAH1C7B,EAAI6B,GAAQ,UAAU;AAAA,IAAA,IAH7B;AAAA,EASJ;AAEJ;AAEA,MAAMM,WAAuBrF,EAAM,UAAU;AAAA,EAC3C,YAAYF,GAAO;AACjB,UAAMA,CAAK;AAkBb,IAAA2B,EAAA,2BAAoB,YAAY;AAC9B,WAAK,sBAAA;AACL,YAAM,EAAE,YAAA6D,MAAe,KAAK;AAI5B,UAAI;AACF,cAAM,EAAE,MAAMC,EAAA,IAAY,MAAMC,GAAiBF,CAAU;AAC3D,aAAK,SAAS;AAAA,UACZ,SAAAC;AAAA,UACA,iBAAgBA,KAAA,gBAAAA,EAAS,WAAU,IAAI,YAAA;AAAA,QAAY,CACpD;AAAA,MACH,QAAc;AAAA,MAAC;AACf,UAAI;AACF,cAAME,IAAY,MAAMC,GAAA;AACxB,aAAK,SAAS,EAAE,WAAAD,GAAW;AAAA,MAC7B,QAAc;AAAA,MAAC;AAAA,IACjB;AAEA,IAAAhE,EAAA,4BAAqB,CAACC,MAAc;AAClC,MAAKiE,GAAQjE,EAAU,SAAS,KAAK,MAAM,OAAO,KAChD,KAAK,sBAAA;AAAA,IAET;AAEA,IAAAD,EAAA,iBAAU,MAAM;AACd,MAAAiC,EAAO,GAAGC,EAAO,OAAO,YAAY,EAAE;AAAA,QAAK,CAACC,MAC1C,KAAK,SAAS,EAAE,MAAMA,EAAI,KAAK,IAAI,CAACgC,MAAMA,EAAE,IAAI,GAAG;AAAA,MAAA;AAAA,IAEvD;AACA,IAAAnE,EAAA,+BAAwB,MAAM;AAC5B,YAAM,EAAE,iBAAAoE,GAAiB,SAAAC,EAAA,IAAY,KAAK;AAC1C,UAAIC,IAAS,EAAE,GAAID,KAAW,GAAC;AAI/B,UAHID,KAAmB,CAACE,EAAO,aAC7BA,EAAO,WAAWF,IAEhBG,GAAQD,CAAM,GAAG;AAGnB,QAAAA,IAAS,EAAE,GAAGlB,EAAA;AACd,cAAMoB,IAAoBC,GAAY3B,GAAkB,MAAS;AACjE,QAAuC0B,KAAsB,SAC3DF,EAAO,aAAaE,IAEtB,KAAK,WAAWF,CAAM;AAAA,MACxB,MAAA,CAAYA,EAAO,UACjBA,EAAO,QAAQrB;AAEjB,MAAKqB,EAAO,eACVA,EAAO,aAAanB,IAItB,OAAOmB,EAAO,OAEVA,EAAO,QAAQ,OAAOA,EAAO,IAAI,EAAE,YAAA,MAAkB,WACvD,OAAOA,EAAO,MAGXA,EAAO,UACVA,EAAO,QAAQpB,IAEZoB,EAAO,WACVA,EAAO,SAAS,IAElB,KAAK;AAAA,QACH;AAAA,UACE,QAAAA;AAAA,UACA,YAAY;AAAA,YACV,UAAUA,EAAO,SAASpB;AAAA,YAC1B,SACE,OAAOoB,EAAO,UAAU,CAAC,IAAI,OAAOA,EAAO,SAASpB,CAAS,IAAI;AAAA,YACnE,iBAAiB;AAAA,YACjB,iBAAiB,CAAC,IAAI,KAAK,KAAK,GAAI;AAAA,UAAA;AAAA,QACtC;AAAA,QAEF,KAAK;AAAA,MAAA;AAAA,IAET;AAEA,IAAAlD,EAAA,oBAAa,CAACsE,MAAW;AACvB,YAAMI,IAAO,EAAE,GAAGJ,EAAA;AAClB,MAAKI,EAAK,KAAG,OAAOA,EAAK,GACrB,KAAK,MAAM,mBAAiB,KAAK,MAAM,gBAAgBA,CAAI;AAAA,IACjE;AAEA,IAAA1E,EAAA,iBAAU,MAAM;AACd,YAAM,EAAE,QAAAsE,MAAW,KAAK;AACxB,WAAK,SAAS,EAAE,SAAS,GAAA,CAAM;AAC/B,YAAM,EAAE,YAAAT,MAAe,KAAK,OAEtBc,IAAM,GAAGzC,EAAO,OAAO,WAAW2B,CAAU,qBAC5Ce,IAAUnD,EAAI6C,GAAQ,QAAQ,IAChCA,IACA,EAAE,GAAGA,GAAQ,QAAQ,YAAA;AACzB,MAAArC,EAAO,GAAG0C,CAAG,IAAIE,GAAG,UAAUD,CAAO,CAAC,EAAE,EACrC,KAAK,CAACzC,MAAQ;AACb,cAAM2C,IAAa,EAAE,GAAG,KAAK,MAAM,WAAA;AACnC,QAAAA,EAAW,QAAQ3C,EAAI,KAAK,OAE5B,KAAK,SAAS;AAAA,UACZ,SAAS;AAAA,UACT,MAAMA,EAAI;AAAA,UACV,KAAK;AAAA,UACL,YAAA2C;AAAA,QAAA,CACD;AAAA,MACH,CAAC,EACA,MAAM,CAACxC,MAAQ;AACd,aAAK,SAAS,EAAE,SAAS,IAAO,OAAOA,GAAK,MAAM,CAAA,GAAI;AAAA,MACxD,CAAC;AAAA,IACL;AACA,IAAAtC,EAAA,2BAAoB,CAAC8E,GAAYT,GAASU,MAAW;AACnD,UAAIC,IAAQC,GAAM,KAAK,MAAM,QAAQ;AAAA,QACnC,OAAOH,EAAW;AAAA,QAClB,SAASA,EAAW,UAAU,KAAKA,EAAW;AAAA,QAC9C,GAAGT;AAAA,MAAA,CACJ;AACD,MAAIU,KAAUA,EAAO,UACfA,EAAO,MAAMA,EAAO,MAAM,SAAS,CAAC,MAAM,cAC5CC,EAAM,SAAS,SACND,EAAO,MAAMA,EAAO,MAAM,SAAS,CAAC,MAAM,SACnDC,EAAM,SAAS,cAEfA,EAAM,SAASD,EAAO,MAAMA,EAAO,MAAM,SAAS,CAAC,IAGnDA,KAAUA,EAAO,UAAU,YAC7BC,EAAM,UAAU,KAEhBA,EAAM,UAAU,IAElB,KAAK,SAAS,EAAE,QAAQA,EAAA,GAAS,MAAM,KAAK,WAAWA,CAAK,CAAC;AAAA,IAC/D;AAEA,IAAAhF,EAAA,sBAAe,CAACsE,MAAW;AAEzB,MAAI,gBAAgBA,KAAQY,GAAapC,GAAkBwB,EAAO,UAAU;AAC5E,UAAIa,IAAY,EAAE,GAAG,KAAK,MAAM,QAAQ,QAAQ,GAAG,OAAO,GAAA;AAC1D,MAAAC,GAAQd,GAAQ,CAACpD,GAAGmE,MAAM;AACxB,QAAAF,EAAUE,CAAC,IAAInE;AAAA,MACjB,CAAC;AACD,YAAMoE,IAAgB,OAAO,KAAKH,CAAS,EAAE;AAAA,QAC3C,CAAC/F,GAAKmG,OACJJ,EAAUI,CAAG,MAAM,SAASnG,EAAImG,CAAG,IAAIJ,EAAUI,CAAG,IAAInG;AAAA,QAE1D,CAAA;AAAA,MAAC;AAEH,WAAK;AAAA,QAAS,EAAE,QAAQkG,EAAA;AAAA,QAAiB,MACvC,KAAK,WAAWA,CAAa;AAAA,MAAA;AAAA,IAEjC;AAEA,IAAAtF,EAAA,qBAAc,MAAM;AAClB,WAAK;AAAA,QACH;AAAA,UACE,QAAQoD;AAAA,QAAA;AAAA,QAEV,MAAM,KAAK,WAAWA,CAAa;AAAA,MAAA;AAAA,IAEvC;AAEA,IAAApD,EAAA,+BAAwB,MAAM;AAC5B,WAAK,SAAS,EAAE,iBAAiB,CAAC,KAAK,MAAM,iBAAiB;AAAA,IAChE;AApLE,SAAK,QAAQ;AAAA,MACX,MAAM,CAAA;AAAA,MACN,iBAAiB;AAAA,MACjB,SAASqD,GAAA;AAAA,MACT,QAAQ,CAAA;AAAA,MACR,WAAW,CAAA;AAAA,MACX,YAAY;AAAA,QACV,UAAUH;AAAA,QACV,SAAS;AAAA,QACT,iBAAiB;AAAA,QACjB,iBAAiB,CAAC,IAAI,KAAK,KAAK,GAAI;AAAA,MAAA;AAAA,MAEtC,SAAS;AAAA,MACT,SAAS;AAAA,IAAA;AAAA,EAEb;AAAA,EAuKA,SAAS;;AACP,UAAM;AAAA,MACJ,MAAM,EAAE,QAAAsC,GAAQ,QAAAC,EAAA;AAAA,MAChB,SAAAC;AAAA,MACA,OAAAC;AAAA,MACA,QAAArB;AAAA,MACA,YAAAQ;AAAA,MACA,iBAAAc;AAAA,MACA,SAAA9B;AAAA,MACA,WAAAE;AAAA,IAAA,IACE,KAAK,OACH,EAAE,YAAAH,GAAY,iBAAAO,GAAiB,UAAAyB,EAAA,IAAa,KAAK,OACjDC,IAAU,OAAOxB,EAAO,QAAQ,EAAE,EAAE,kBAAkB,SACtDyB,IAAatE,EAAIgE,GAAQ,MAAM,IACjCA,EAAO,KAAK,IAAI,CAACtB,OAAO;AAAA,MACtB,OAAOA,EAAE;AAAA,MACT,OAAO,GAAG6B,EAAU7B,EAAE,KAAK,CAAC,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EAChE,IACF;AACgB,IAAA1C,EAAIgE,GAAQ,OAAO,KACnCA,EAAO,MAAM,IAAI,CAACjG,OAAO;AAAA,MACvB,OAAOA,EAAE;AAAA,MACT,OAAO,GAAGwG,EAAUxG,EAAE,KAAK,CAAC,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EAChE;AAEN,UAAMyG,IAAuBxE,EAAIgE,GAAQ,QAAQ,IAC7CA,EAAO,OAAO,IAAI,CAACS,OAAO;AAAA,MACxB,OAAOA,EAAE;AAAA,MACT,OAAO,GAAGF,EAAUE,EAAE,KAAK,CAAC,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EAChE,IACF,MACEC,IAAiB1E,EAAIgE,GAAQ,WAAW,IAC1CA,EAAO,UAAU,IAAI,CAACS,OAAO;AAAA,MAC3B,OAAOA,EAAE;AAAA,MACT,OAAO,GAAGF,EAAUE,EAAE,KAAK,CAAC,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EAChE,IACF,MACEE,KAAe3E,EAAIgE,GAAQ,UAAU,IACvCA,EAAO,SAAS,IAAI,CAACS,OAAO;AAAA,MAC1B,OAAOA,EAAE;AAAA,MACT,OAAO,GAAGF,EAAUE,EAAE,KAAK,CAAC,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EAChE,IACF,MACEG,KAAgB5E,EAAIgE,GAAQ,OAAO,IACrCA,EAAO,MAAM,IAAI,CAACS,OAAO;AAAA,MACvB,OAAOA,EAAE;AAAA,MACT,OAAO,GAAGF,EAAUE,EAAE,KAAK,CAAC,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EAChE,IACF,MACEI,KAAkB7E,EAAIgE,GAAQ,YAAY,IAC5CA,EAAO,WAAc,IAAI,CAACS,OAAO;AAAA,MAC/B,OAAOA,EAAE;AAAA,MACT,OAAO,GAAGF,EAAUE,EAAE,KAAK,CAAC,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EAChE,IACF,CAAA,GACEK,KAAe,CAACrF,MAChBA,MAAM,OAAOA,MAAM,MAAQA,MAAM,SAAe,YAChDA,MAAM,OAAOA,MAAM,MAASA,MAAM,UAAgB,WAC/C,WAEHsF,KAAe/E,EAAIgE,GAAQ,SAAS,IACtCA,EAAO,QAAW,IAAI,CAACS,OAAO;AAAA,MAC5B,OAAOA,EAAE;AAAA,MACT,OAAO,GAAGK,GAAaL,KAAA,gBAAAA,EAAG,KAAK,CAAC,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EACpE,IACF,CAAA,GACEO,KAAmBhF,EAAIgE,GAAQ,aAAa,IAC9CA,EAAO,YAAe,IAAI,CAACS,OAAO;AAAA,MAChC,OAAOA,EAAE;AAAA,MACT,OAAO,GAAGF,EAAUE,EAAE,KAAK,CAAC,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EAChE,IACF,CAAA,GACEQ,KAAajF,EAAIgE,GAAQ,OAAO,IAClCA,EAAO,MAAS,IAAI,CAACS,OAAO;AAAA,MAC1B,OAAOA,EAAE;AAAA,MACT,OAAO,GAAGF,EAAUE,EAAE,KAAK,CAAC,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EAChE,IACF,CAAA,GACES,KAAsBlF,EAAIgE,GAAQ,gBAAgB,IACpDA,EAAO,eAAkB,IAAI,CAACS,OAAO;AAAA,MACnC,OAAOA,EAAE;AAAA,MACT,OAAO,GAAGA,EAAE,KAAK,KAAKA,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAAA,EACrD,IACF,CAAA;AAEJ,WACEzG,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA,UACL,SAAS;AAAA,UACT,WAAW;AAAA,UACX,QAAQ;AAAA,QAAA;AAAA,QAGT,UAAA;AAAA,UAAAoG,MAAa,SAAS/B,KAAWpE,gBAAAA,EAAAA,IAACkH,GAAA,EAAS,SAAA9C,GAAkB;AAAA,UAE9DpE,gBAAAA,EAAAA,IAACgC,KACE,UAAAiE,KACCjG,gBAAAA,EAAAA;AAAAA,YAACmH;AAAA,YAAA;AAAA,cACC,OAAO,EAAE,cAAc,OAAA;AAAA,cACvB,SAASnH,gBAAAA,EAAAA,IAACoH,IAAA,EAAS,OAAAnB,EAAA,CAAc;AAAA,cACjC,MAAK;AAAA,YAAA;AAAA,UAAA,GAGX;AAAA,iCACCjE,GAAA,EACC,UAAA;AAAA,YAAAjC,gBAAAA,EAAAA,KAACkC,GAAA,EAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,EAAE,cAAc,MAAA,GAClD,UAAA;AAAA,cAAAjC,gBAAAA,EAAAA;AAAAA,gBAACK;AAAA,gBAAA;AAAA,kBACC,cAAc0B,EAAI,KAAK,MAAM,WAAW,CAAA,GAAI,GAAG;AAAA,kBAC/C,UAAU,CAACvB,MAAU,KAAK,aAAa,EAAE,GAAGA,GAAO;AAAA,kBACnD,eAAe,CAACA,MAAU,KAAK,aAAa,EAAE,GAAG,MAAM;AAAA,kBACvD,OAAO,EAAE,cAAc,OAAO,OAAO,OAAA;AAAA,gBAAO;AAAA,cAAA;AAAA,cAG9CR,gBAAAA,EAAAA;AAAAA,gBAACqH;AAAAA,gBAAA;AAAA,kBACC,YAAAlD;AAAA,kBACA,SAAQ;AAAA,kBACR,iBACEpC,EAAI6C,GAAQ,UAAU,KAAKF,KAAmB;AAAA,kBAEhD,cAAc,CAAClE,MAAU;AACvB,yBAAK,aAAa,EAAE,UAAUA,EAAM,KAAK;AAAA,kBAC3C;AAAA,kBACA,eAAe,CAACA,MAAU;AACxB,yBAAK,aAAa,EAAE,UAAU,KAAA,CAAM;AAAA,kBACtC;AAAA,kBACA,aAAY;AAAA,kBACZ,QAAO;AAAA,kBACP,WAAW;AAAA,gBAAA;AAAA,cAAA;AAAA,eAGX,KAAK,MAAM,kBAAkB,cAC7B,KAAK,MAAM,kBAAkB,cAC3BR,gBAAAA,EAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,WAAW,OAAO,cAAc,SAC5C,UAAAA,gBAAAA,EAAAA;AAAAA,gBAACqC;AAAA,gBAAA;AAAA,kBACC,eAAe,OAAO8B,CAAU;AAAA,kBAChC,iBAAiB,CAAC3D,MAAU;AAC1B,yBAAK,aAAa,EAAE,oBAAoBA,EAAM,KAAK;AAAA,kBACrD;AAAA,kBACA,mBACEuB,EAAI6C,GAAQ,oBAAoB,KAAK;AAAA,kBAEvC,eAAe,CAACpE,MAAU;AACxB,yBAAK,aAAa,EAAE,oBAAoB,KAAA,CAAM;AAAA,kBAChD;AAAA,kBACA,aAAY;AAAA,kBACZ,WAAW;AAAA,gBAAA;AAAA,cAAA,GAEf;AAAA,cAEJR,gBAAAA,EAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,WAAW,UACvB,UAAAD,gBAAAA,EAAAA,KAACY,GAAA,EAAK,QAAO,UACT,UAAA;AAAA,iBAAA,KAAK,MAAM,kBAAkB,cAC7B,KAAK,MAAM,kBAAkB,cAC7BX,gBAAAA,EAAAA,IAACU,GAAA,EAAS,OAAM,WACd,UAAAV,gBAAAA,EAAAA;AAAAA,kBAACqD;AAAA,kBAAA;AAAA,oBACC,OAAO,EAAE,YAAY,MAAA;AAAA,oBACrB,MAAK;AAAA,oBACL,UAAU,CAACiE,MAAQ;AACjB,2BAAK,aAAa,EAAE,YAAYA,EAAI,OAAO,MAAM,MAAM,GAAG,EACvD,OAAO,CAAC9F,OAAMA,OAAM,EAAE,GAAE;AAAA,oBAC7B;AAAA,oBACA,OAAOD,EAAQqD,KAAA,gBAAAA,EAAQ,UAAU,KAAIb,IAAAa,KAAA,gBAAAA,EAAQ,eAAR,gBAAAb,EAAoB,KAAK,QAAOa,KAAA,gBAAAA,EAAQ,eAAc;AAAA,oBAC3F,YAAW;AAAA,oBACX,SAAS;AAAA,sBACP,EAAE,OAAO,IAAI,OAAO,MAAA;AAAA,sBACpB,EAAE,OAAO,gBAAgB,OAAO,OAAA;AAAA,sBAChC,EAAE,OAAO,SAAS,OAAO,WAAA;AAAA,oBAAW;AAAA,kBACtC;AAAA,gBAAA,GAEJ;AAAA,sCAEDlE,GAAA,EACC,UAAAV,gBAAAA,EAAAA;AAAAA,kBAACa;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,YAAU;AAAA,oBACV,MAAK;AAAA,oBACL,OAAO,EAAE,UAAU,IAAA;AAAA,oBACnB,aAAY;AAAA,oBACZ,OAAOU,EAAQqD,KAAA,gBAAAA,EAAQ,OAAO,IAAIA,EAAO,UAAWA,KAAA,QAAAA,EAAQ,UAAU,CAACA,EAAO,OAAO,IAAI,CAAA;AAAA,oBACzF,UAAU,CAACpE,MAAU,KAAK,aAAa,EAAE,SAASA,EAAM,SAASA,IAAQ,MAAM;AAAA,oBAC/E,SAAS;AAAA,sBACP,EAAE,OAAO,mBAAmB,OAAO,kBAAA;AAAA,sBACnC,EAAE,OAAO,cAAc,OAAO,aAAA;AAAA,sBAC9B,EAAE,OAAO,mBAAmB,OAAO,kBAAA;AAAA,oBAAkB;AAAA,kBACvD;AAAA,gBAAA,GAEJ;AAAA,sCACCE,GAAA,EACC,UAAAV,gBAAAA,EAAAA;AAAAA,kBAACuH;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBAGL,OAAOnB,IAAU,YAAY;AAAA,oBAC7B,SAAQ;AAAA,oBACR,gBAAcA;AAAA,oBACd,SAAS,MACP,KAAK,aAAa,EAAE,MAAMA,IAAU,OAAO,SAAS;AAAA,oBAEvD,UAAA;AAAA,kBAAA;AAAA,gBAAA,EAED,CACF;AAAA,cAAA,EAAA,CACF,EAAA,CAEF;AAAA,YAAA,GACF;AAAA,mCACCnE,GAAA,EAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAQvB,UAAA;AAAA,cAAAjC,gBAAAA,EAAAA;AAAAA,gBAACe;AAAA,gBAAA;AAAA,kBACC,cAAcgB,EAAI6C,GAAQ,MAAM;AAAA,kBAChC,UAAU,CAACpE,MAAU,KAAK,aAAa,EAAE,MAAMA,GAAO;AAAA,kBACtD,OAAO6F,KAAc,CAAA;AAAA,kBACrB,OAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAERrG,gBAAAA,EAAAA;AAAAA,gBAACe;AAAA,gBAAA;AAAA,kBACC,cAAcgB,EAAI6C,GAAQ,QAAQ;AAAA,kBAClC,UAAU,CAACpE,MAAU,KAAK,aAAa,EAAE,QAAQA,GAAO;AAAA,kBACxD,OAAO+F,KAAwB,CAAA;AAAA,kBAC/B,OAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAERvG,gBAAAA,EAAAA;AAAAA,gBAACe;AAAA,gBAAA;AAAA,kBACK,cAAcgB,EAAI6C,GAAQ,aAAa;AAAA,kBACvC,UAAU,CAACpE,MACT,KAAK,aAAa,EAAE,aAAaA,GAAO;AAAA,kBAE1C,OAAOuG;AAAA,kBACP,OAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAER/G,gBAAAA,EAAAA;AAAAA,gBAACe;AAAA,gBAAA;AAAA,kBAEC,UAAU,CAACP,MAAU,KAAK,aAAa,EAAE,SAASA,GAAO;AAAA,kBACzD,OAAOsG;AAAA,kBACP,OAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEXZ,KACCnG,gBAAAA,EAAAA,KAAClB,EAAM,UAAN,EACC,UAAA;AAAA,gBAAAmB,gBAAAA,EAAAA;AAAAA,kBAACe;AAAA,kBAAA;AAAA,oBACC,cAAcgB,EAAI6C,GAAQ,WAAW;AAAA,oBACrC,UAAU,CAACpE,MAAU,KAAK,aAAa,EAAE,WAAWA,GAAO;AAAA,oBAC3D,OAAOiG,KAAkB,CAAA;AAAA,oBACzB,OAAM;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAERzG,gBAAAA,EAAAA;AAAAA,kBAACe;AAAA,kBAAA;AAAA,oBACC,cAAcgB,EAAI6C,GAAQ,UAAU;AAAA,oBACpC,UAAU,CAACpE,MAAU,KAAK,aAAa,EAAE,UAAUA,GAAO;AAAA,oBAC1D,OAAOkG,MAAgB,CAAA;AAAA,oBACvB,OAAM;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAER1G,gBAAAA,EAAAA;AAAAA,kBAACe;AAAA,kBAAA;AAAA,oBACC,cAAcgB,EAAI6C,GAAQ,OAAO;AAAA,oBACjC,UAAU,CAACpE,MAAU,KAAK,aAAa,EAAE,OAAOA,GAAO;AAAA,oBACvD,OAAOmG,MAAiB,CAAA;AAAA,oBACxB,OAAM;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAER3G,gBAAAA,EAAAA;AAAAA,kBAACe;AAAA,kBAAA;AAAA,oBACC,cAAcgB,EAAI6C,GAAQ,YAAY;AAAA,oBACtC,UAAU,CAACpE,MAAU,KAAK,aAAa,EAAE,YAAYA,GAAO;AAAA,oBAC5D,OAAOoG;AAAA,oBACP,OAAM;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAER5G,gBAAAA,EAAAA;AAAAA,kBAACe;AAAA,kBAAA;AAAA,oBACC,cAAcgB,EAAI6C,GAAQ,OAAO;AAAA,oBACjC,UAAU,CAACpE,MAAU,KAAK,aAAa,EAAE,OAAOA,GAAO;AAAA,oBACvD,OAAOwG;AAAA,oBACP,OAAM;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAERhH,gBAAAA,EAAAA;AAAAA,kBAACe;AAAA,kBAAA;AAAA,oBACC,cAAcgB,EAAI6C,GAAQ,gBAAgB;AAAA,oBAC1C,UAAU,CAACpE,MAAU,KAAK,aAAa,EAAE,gBAAgBA,GAAO;AAAA,oBAChE,OAAOyG;AAAA,oBACP,OAAM;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACR,GACF;AAAA,cAEFjH,gBAAAA,MAAC,SAAI,OAAO,EAAE,WAAW,SAAS,cAAc,SAC9C,UAAAD,gBAAAA,EAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO,EAAE,YAAY,GAAG,UAAU,GAAA;AAAA,kBAClC,SAAS,KAAK;AAAA,kBACf,UAAA;AAAA,oBAAA;AAAA,oBACU;AAAA,oBACR,KAAK,MAAM,wCAAmBd,GAAA,EAAW,0BAAMX,GAAA,CAAA,CAAa;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA,EAC/D,CACF;AAAA,YAAA,EAAA,CACF;AAAA,UAAA,GACF;AAAA,iCACC0D,GAAA,EACC,UAAA;AAAA,YAAAhC,gBAAAA,EAAAA,IAACiC,GAAA,EAAI,MAAM,IAAI,OAAO,EAAE,WAAW,QAAQ,cAAc,MAAA,GACvD,gCAACsF,GAAA,EAAO,MAAK,WAAU,QAAM,IAAC,SAAS,KAAK,aAAa,uBAEzD,EAAA,CACF;AAAA,YACAvH,gBAAAA,EAAAA,IAACiC,KAAI,MAAM,IAAI,OAAO,EAAE,WAAW,SAAS,cAAc,MAAA,GACvD,eACC,CAAC,MAAMmD,EAAW,KAAK,KACvB,YAAYA,EAAW,MAAM,eAAe,OAAO,CAAC,GAAA,CACxD;AAAA,UAAA,GACF;AAAA,UACC,CAACa,KACAjG,gBAAAA,EAAAA;AAAAA,YAACwH;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAS,KAAK,MAAM;AAAA,cACpB,QAAQ,EAAE,GAAG,cAAA;AAAA,cACb,YAAY1B;AAAA,cACZ,SAAAE;AAAA,cACA,YAAY,KAAK,MAAM;AAAA,cACvB,UAAU,KAAK;AAAA,cACf,QAAQ,CAACpC,MAAWA,EAAO,MAAM;AAAA,cACjC,mBAAmB;AAAA,cACnB,mBAAmB,CAACA,MAClB5D,gBAAAA,EAAAA;AAAAA,gBAAC0B;AAAA,gBAAA;AAAA,kBACE,GAAGkC;AAAA,kBACJ,YAAAO;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,UAILgC,MAAa,YAAY/B,KAAWpE,gBAAAA,EAAAA,IAACkH,KAAS,SAAA9C,EAAA,CAAkB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGvE;AACF;AC5nBA,SAAwBjE,GAAO;AAAA,EAC7B,YAAAgE;AAAA,EACA,SAAAQ;AAAA,EACA,iBAAA8C;AAAA,EACA,iBAAA/C;AAAA,EACA,UAAAyB;AAAA,EACA,MAAAuB;AAAA,EACA,GAAGC;AACL,GAAG;AACD,SAAAC,GAAQF,CAAI,yBAETG,GAAc,UAAd,EAAuB,OAAOC,GAAYH,CAAW,GACpD,UAAA3H,gBAAAA,EAAAA;AAAAA,IAAC+H;AAAAA,IAAA;AAAA,MACC,YAAA5D;AAAA,MACA,SAAAQ;AAAA,MACA,iBAAA8C;AAAA,MACA,iBAAA/C;AAAA,MACA,UAAAyB;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;ACtBO,MAAMhG,KAAS6H,GAAUC,GAAeC,EAAM,CAAC;","x_google_ignoreList":[0,1,2,3]}
@@ -2,18 +2,19 @@ var C = Object.defineProperty;
2
2
  var _ = (i, l, s) => l in i ? C(i, l, { enumerable: !0, configurable: !0, writable: !0, value: s }) : i[l] = s;
3
3
  var c = (i, l, s) => _(i, typeof l != "symbol" ? l + "" : l, s);
4
4
  import { a as A } from "./chunks/withDatasetKey-BgMY05XE.js";
5
- import { c as x, w as I } from "./chunks/config-B2Z9BaEd.js";
5
+ import { w as I } from "./chunks/withTheme-Dh6PRuII.js";
6
6
  import { j as t } from "./chunks/jsx-runtime-BzflLqGi.js";
7
7
  import h from "react";
8
+ import { c as x } from "./chunks/config-D1NH4DTr.js";
8
9
  import { c as m, L as K, s as T, R, b as M } from "./chunks/router-CssZk5qZ.js";
9
10
  import { Skeleton as E, Alert as P, Row as j, Col as u, Tooltip as L, Button as F, Rate as O } from "antd";
10
11
  import { E as N } from "./chunks/ErrorMsg-K8k5PPTp.js";
11
- import { D as z } from "./chunks/DatasetlogoWithFallback-BhWvpgDn.js";
12
+ import { D as z } from "./chunks/DatasetlogoWithFallback-Dava2uqZ.js";
12
13
  import { M as B } from "./chunks/MetricsPresentation-DKCJQOtf.js";
13
14
  import { get as p, isEmpty as S, isArray as H } from "lodash-es";
14
15
  import { P as o } from "./chunks/PresentationItem-C4yZ555-.js";
15
- import { g as W } from "./chunks/enumeration-CC8SblcI.js";
16
- import { B as G } from "./chunks/BibTex-CPaVr-5w.js";
16
+ import { g as W } from "./chunks/enumeration-DM8Hb36g.js";
17
+ import { B as G } from "./chunks/BibTex-79CCKAOK.js";
17
18
  import { marked as U } from "marked";
18
19
  import V from "dompurify";
19
20
  import { R as q } from "./chunks/LinkOutlined-2IkQWTV7.js";
@@ -447,8 +448,8 @@ function Q({
447
448
  }
448
449
  ) });
449
450
  }
450
- const ge = I(A(Q));
451
+ const je = I(A(Q));
451
452
  export {
452
- ge as SourceDataset
453
+ je as SourceDataset
453
454
  };
454
455
  //# sourceMappingURL=sourceDataset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceDataset.js","sources":["../src/SourceDataset/Metrics.js","../src/SourceDataset/TaxonomicCoverage.js","../src/SourceDataset/AgentPresentation.js","../src/SourceDataset/index.js","../src/entries/sourceDataset.js"],"sourcesContent":["import React from \"react\";\nimport config from \"../config\";\nimport client from \"../api/client\";\nimport MetricsPresentation from \"./MetricsPresentation\"\n\n\nclass Metrics extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n metrics: null,\n rank: null,\n loading: true,\n };\n }\n\n componentDidMount() {\n this.getData();\n this.getRank();\n }\n\n getData = () => {\n const { dataset, datasetKey } = this.props;\n client(\n `${config.dataApi}dataset/${datasetKey}/source/${dataset.key}/metrics`\n ).then((res) => {\n this.setState({ metrics: res.data });\n });\n };\n\n getRank = () => {\n client(`${config.dataApi}vocab/rank`).then((res) =>\n this.setState({ rank: res.data.map((r) => r.name) })\n );\n };\n render = () => <MetricsPresentation {...this.state} dataset={this.props.dataset} />\n}\n\nexport default Metrics;\n","import React from \"react\";\nimport config from \"../config\";\nimport client from \"../api/client\";\nimport {Skeleton} from \"antd\";\nimport { get } from \"lodash-es\";\nimport { LinkTo } from \"../router\";\n\nclass TaxonomicCoverage extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n loading: true,\n taxonMap: null\n };\n }\n\n componentDidMount() {\n this.getData();\n }\n\n getData = () => {\n const { dataset, datasetKey } = this.props;\n const taxonMap = {};\n client(\n `${config.dataApi}dataset/${datasetKey}/sector?limit=1000&subjectDatasetKey=${dataset.key}`\n ).then((res) => {\n return Promise.allSettled(\n res.data.result.filter(t => !!t?.target).map((t) =>\n client(\n `${config.dataApi}dataset/${datasetKey}/nameusage/search?TAXON_ID=${t?.target?.id}${t?.subject?.rank ? \"&rank=\"+t?.subject?.rank : \"\"}&q=${t?.subject?.name}`\n ).then((usages) => {\n const taxon = get(usages, \"data.result[0]\");\n if (taxon) {\n const path = taxon.classification\n .slice(1, taxon.classification.length - 1)\n .map((t) => t.name)\n .join(\" > \");\n if (taxonMap[path]) {\n taxonMap[path].push(\n taxon.classification[taxon.classification.length - 1]\n );\n } else {\n taxonMap[path] = [\n taxon.classification[taxon.classification.length - 1],\n ];\n }\n }\n })\n .catch(err => {\n console.log(t)\n console.log(err)})\n )\n ).then(() => this.setState({ taxonMap, loading: false }));\n });\n };\n\n render = () => {\n const { taxonMap } = this.state;\n const { style } = this.props;\n return taxonMap\n ? (Object.keys(taxonMap).length > 0 ? Object.keys(taxonMap).sort((a,b) => a.length - b.length).map((k) => (\n <div style={style} key={k}>\n <span>{k}{k !== \"\" ? \":\" : \"\"}</span>{\" \"}\n {taxonMap[k].map((tx, idx) => (\n <React.Fragment key={idx}>\n <LinkTo to=\"tree\" args={{ taxonKey: tx.id }}>{tx.name}</LinkTo>\n {idx !== taxonMap[k].length - 1 ? \", \" : \"\"}\n </React.Fragment>\n ))}\n </div>\n )) : \"N/A\")\n :\n <Skeleton active paragraph={{ rows: 4 }} />\n ;\n };\n}\n\nexport default TaxonomicCoverage;\n","import React from \"react\";\nimport { get } from \"lodash-es\";\n\nconst AgentPresentation = ({ agent, countryAlpha2, style, noLinks }) => {\n const country = get(agent, \"country\")\n ? get(\n countryAlpha2,\n `[${get(agent, \"country\")}].title`,\n get(agent, \"country\")\n )\n : null;\n return agent ? (\n <span style={style}>\n {(agent.given || agent.family) && (\n <span style={{ display: \"block\" }}>\n {[agent.family, agent.given].filter((a) => !!a).join(\", \")}\n </span>\n )}\n {agent.orcid &&\n (noLinks ? (\n <div>\n <img\n src=\"https://www.checklistbank.org/images/orcid_16x16.png\"\n style={{ flex: \"0 0 auto\" }}\n alt=\"\"\n ></img>{\" \"}\n {agent.orcid}\n </div>\n ) : (\n <a\n style={{ display: \"block\" }}\n href={`https://orcid.org/${agent.orcid}`}\n >\n <img\n src=\"https://www.checklistbank.org/images/orcid_16x16.png\"\n style={{ flex: \"0 0 auto\" }}\n alt=\"\"\n ></img>{\" \"}\n {agent.orcid}\n </a>\n ))}\n {agent.organisation && (\n <span style={{ display: \"block\" }}>{agent.organisation}</span>\n )}\n {agent.rorid &&\n (noLinks ? (\n <div>\n <img\n src=\"https://www.checklistbank.org/images/ror-logo-small.png\"\n style={{ flex: \"0 0 auto\", height: \"20px\" }}\n alt=\"\"\n ></img>{\" \"}\n {agent.rorid}\n </div>\n ) : (\n <a\n style={{ display: \"block\" }}\n href={`https://ror.org/${agent.rorid}`}\n >\n <img\n src=\"https://www.checklistbank.org/images/ror-logo-small.png\"\n style={{ flex: \"0 0 auto\", height: \"20px\" }}\n alt=\"\"\n ></img>{\" \"}\n {agent.rorid}\n </a>\n ))}\n\n {agent.department && (\n <span style={{ display: \"block\" }}>{agent.department}</span>\n )}\n {(agent.city || agent.state || country) && (\n <span style={{ display: \"block\" }}>\n {[agent.city, agent.state, country].filter((a) => !!a).join(\", \")}\n </span>\n )}\n \n </span>\n ) : null;\n};\n\n\n\nexport default AgentPresentation;\n","import React from \"react\";\nimport config from \"../config\";\nimport client, { setAuth } from \"../api/client\";\nimport { Alert, Rate, Row, Col, Button, Tooltip } from \"antd\";\nimport ErrorMsg from \"../components/ErrorMsg\";\nimport DatasetlogoWithFallback from \"../components/DatasetlogoWithFallback\";\nimport Metrics from \"./Metrics\";\nimport { get, isArray, isEmpty } from \"lodash-es\";\nimport PresentationItem from \"../components/PresentationItem\";\nimport TaxonomicCoverage from \"./TaxonomicCoverage\";\nimport { RouterContext, buildRouter } from \"../router\";\nimport AgentPresentation from \"./AgentPresentation\";\nimport { getCountries } from \"../api/enumeration\";\nimport BibTex from \"../components/BibTex\";\nimport { LinkOutlined } from \"@ant-design/icons\";\nimport { marked } from \"marked\";\nimport DOMPurify from \"dompurify\";\n// import ReferencePopover from \"./ReferencePopover\"\nconst IDENTIFIER_TYPES = {\n col: \"https://www.checklistbank.org/dataset/\",\n gbif: \"https://www.gbif.org/dataset/\",\n plazi: \"http://publication.plazi.org/id/\",\n doi: \"https://doi.org/\",\n};\nclass SourceDatasetPage extends React.Component {\n constructor(props) {\n super(props);\n setAuth(this.props.auth);\n this.state = {\n datasetLoading: true,\n data: null,\n rank: null,\n countryAlpha2: {},\n };\n }\n\n componentDidMount = () => {\n this.getData();\n getCountries().then((res) => {\n const countryAlpha2 = {};\n res.forEach((c) => {\n countryAlpha2[c.alpha2] = c;\n });\n this.setState({ countryAlpha2 });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (\n prevProps.sourceDatasetKey !== this.props.sourceDatasetKey ||\n prevProps.datasetKey !== this.props.datasetKey\n ) {\n this.getData();\n }\n }\n\n getData = () => {\n const { datasetKey, sourceDatasetKey, pageTitleTemplate } = this.props;\n if (!sourceDatasetKey) return;\n\n client(`${config.dataApi}dataset/${datasetKey}/source/${sourceDatasetKey}`)\n .then((dataset) => {\n if (pageTitleTemplate && get(dataset, \"data.title\")) {\n document.title = pageTitleTemplate.replace(\n \"__dataset__\",\n dataset.data.title\n );\n }\n this.setState({ data: dataset.data, datasetError: null });\n })\n .catch((err) => this.setState({ datasetError: err, data: null }));\n };\n\n getRank = () => {\n client(`${config.dataApi}vocab/rank`).then((res) =>\n this.setState({ rank: res.data.map((r) => r.name) })\n );\n };\n\n render() {\n const { datasetKey } = this.props;\n const { data, countryAlpha2, datasetError } = this.state;\n\n return (\n <React.Fragment>\n <div\n className=\"catalogue-of-life\"\n style={{\n background: \"#fff\",\n padding: 24,\n minHeight: 280,\n margin: \"16px 0\",\n fontSize: \"12px\",\n }}\n >\n {datasetError && (\n <Alert message={<ErrorMsg error={datasetError} />} type=\"error\" />\n )}\n {data && (\n <Row>\n <Col flex=\"auto\">\n {/* <h1\n style={{ fontSize: \"30px\", fontWeight: '400', paddingLeft: \"10px\" , display: 'inline-block', textTransform: 'none'}}\n \n >Database details</h1> */}\n <h1\n style={{\n fontSize: \"30px\",\n fontWeight: \"400\",\n paddingLeft: \"10px\",\n display: \"inline-block\",\n textTransform: \"none\",\n }}\n >\n {data.title}\n </h1>\n {data && (\n <React.Fragment>\n <br />\n <BibTex\n style={{ marginLeft: \"8px\", height: \"32px\" }}\n datasetKey={datasetKey}\n sourceDatasetKey={\n datasetKey !== data.key ? data.key : undefined\n }\n />\n </React.Fragment>\n )}\n </Col>\n\n <Col style={{ textAlign: \"right\" }}>\n <DatasetlogoWithFallback\n auth={this.props.auth}\n style={{\n maxWidth: \"100%\",\n height: \"auto\",\n marginRight: \"8px\",\n }}\n datasetKey={datasetKey}\n sourceDatasetKey={data.key}\n />\n </Col>\n </Row>\n )}\n\n {data && (\n <React.Fragment>\n <PresentationItem label=\"Short name\">\n {data.alias}\n <Tooltip\n title=\"Visit in COL Checklistbank\"\n getPopupContainer={() =>\n document.getElementsByClassName(`catalogue-of-life`)[0]\n }\n >\n <Button\n type=\"link\"\n href={`https://www.checklistbank.org/dataset/${data.key}`}\n >\n <LinkOutlined />{\" \"}\n </Button>\n </Tooltip>\n </PresentationItem>\n <PresentationItem label=\"Full name\">\n {data.title}\n </PresentationItem>\n {(data.version || data.issued) && (\n <PresentationItem\n label={`${data.version ? \"Version\" : \"\"}${\n data.version && data.issued ? \" / \" : \"\"\n }${data.issued ? \"Issued\" : \"\"}`}\n >\n {(data.version || data.issued) &&\n `${data.version ? data.version : \"\"}${\n data.issued ? \" / \" + data.issued : \"\"\n }`}\n </PresentationItem>\n )}\n <PresentationItem label=\"DOI\">\n {data.doi ? (\n <a href={`https://doi.org/${data.doi}`}>\n <img\n src=\"https://www.checklistbank.org/images/DOI_logo.png\"\n style={{ flex: \"0 0 auto\", height: \"16px\" }}\n alt=\"\"\n ></img>\n {data.doi}\n </a>\n ) : (\n \"-\"\n )}\n </PresentationItem>\n {data.contact && !isEmpty(data.contact) && (\n <PresentationItem label=\"Contact\">\n <AgentPresentation\n countryAlpha2={countryAlpha2}\n agent={data.contact}\n />\n </PresentationItem>\n )}\n {data.publisher && !isEmpty(data.publisher) && (\n <PresentationItem label=\"Publisher\">\n <AgentPresentation\n countryAlpha2={countryAlpha2}\n agent={data.publisher}\n />\n </PresentationItem>\n )}\n {data.creator && (\n <PresentationItem label=\"Creator\">\n <Row gutter={[8, 8]}>\n {data.creator.map((a) => (\n <Col span={8}>\n <AgentPresentation\n countryAlpha2={countryAlpha2}\n agent={a}\n />\n </Col>\n ))}\n </Row>\n </PresentationItem>\n )}\n {data.editor && (\n <PresentationItem label=\"Editor\">\n <Row gutter={[8, 8]}>\n {data.editor.map((a) => (\n <Col span={8}>\n <AgentPresentation\n countryAlpha2={countryAlpha2}\n agent={a}\n />\n </Col>\n ))}\n </Row>\n </PresentationItem>\n )}\n {data.contributor && (\n <PresentationItem label=\"Contributor\">\n <Row gutter={[8, 8]}>\n {data.contributor.map((a) => (\n <Col span={8}>\n <AgentPresentation\n countryAlpha2={countryAlpha2}\n agent={a}\n />\n </Col>\n ))}\n </Row>\n </PresentationItem>\n )}\n <PresentationItem label=\"Taxonomic coverage\">\n <TaxonomicCoverage\n dataset={data}\n datasetKey={datasetKey}\n />\n </PresentationItem>\n <Metrics\n datasetKey={datasetKey}\n dataset={data}\n />\n <PresentationItem label=\"Abstract\">\n \n {data.description ? (\n <span\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(marked.parse(data.description)),\n }}\n ></span>\n ) : \"\"}\n </PresentationItem>\n <PresentationItem label=\"Taxonomic scope\">\n {data.taxonomicScope || \"-\"}\n </PresentationItem>\n <PresentationItem label=\"Geographic scope\">\n {data.geographicScope || \"-\"}\n </PresentationItem>\n <PresentationItem label=\"Temporal scope\">\n {data.temporalScope || \"-\"}\n </PresentationItem>\n {/* <PresentationItem label=\"Origin\">\n {data.origin}\n </PresentationItem> */}\n {/* <PresentationItem label=\"Type\">{data.type}</PresentationItem>\n */}{\" \"}\n <PresentationItem label=\"License\">\n {data.license || \"-\"}\n </PresentationItem>\n <PresentationItem label=\"Checklist Confidence\">\n {<Rate value={data.confidence} disabled></Rate>}\n </PresentationItem>\n <PresentationItem label=\"Completeness\">\n {data.completeness}\n </PresentationItem>\n <PresentationItem label=\"Website\">\n {data.url ? (\n <a href={data.url} target=\"_blank\">\n {data.url}\n </a>\n ) : (\n \"-\"\n )}\n </PresentationItem>\n {/* <PresentationItem label=\"Logo Url\">\n {data.url && (\n <a href={data.logoUrl} target=\"_blank\">\n {data.logoUrl}\n </a>\n )}\n </PresentationItem> */}\n <PresentationItem label=\"ISSN\">\n {data.issn ? (\n <a\n href={`https://portal.issn.org/resource/ISSN/${data.issn}`}\n >\n {data.issn}\n </a>\n ) : (\n \"-\"\n )}\n </PresentationItem>\n <PresentationItem label=\"GBIF key\">\n {data.gbifKey ? (\n <a href={`https://www.gbif.org/dataset/${data.gbifKey}`}>\n {data.gbifKey}\n </a>\n ) : (\n \"-\"\n )}\n </PresentationItem>\n {/* <PresentationItem label=\"GBIF publisher key\">\n {data.gbifPublisherKey && (\n <a\n href={`https://www.gbif.org/publisher/${data.gbifPublisherKey}`}\n >\n {data.gbifPublisherKey}\n </a>\n )}\n </PresentationItem> */}\n <PresentationItem label=\"Identifiers\">\n {data.identifier ? (\n <ol\n style={{\n listStyle: \"none\",\n paddingInlineStart: \"0px\",\n }}\n >\n {Object.keys(data.identifier).map((i) => (\n <li\n style={{\n float: \"left\",\n marginRight: \"8px\",\n }}\n >\n {`${i.toUpperCase()}: `}\n {IDENTIFIER_TYPES[i] ? (\n <a\n href={`${IDENTIFIER_TYPES[i]}${data.identifier[i]}`}\n target=\"_blank\"\n >\n {data.identifier[i]}\n </a>\n ) : (\n data.identifier[i]\n )}\n </li>\n ))}\n </ol>\n ) : (\n \"-\"\n )}\n </PresentationItem>\n <PresentationItem label=\"Citation\">\n {data.citation && (\n <span\n dangerouslySetInnerHTML={{ __html: data.citation }}\n ></span>\n )}\n </PresentationItem>\n {/* <PresentationItem label=\"Derived from (sourceKey)\">\n {data.sourceKey}\n </PresentationItem> */}\n <PresentationItem label=\"Source\">\n {data.source && isArray(data.source)\n ? data.source.map(\n (s) =>\n !!s &&\n (s.citation ? (\n <div\n style={{ display: \"inline-block\" }}\n dangerouslySetInnerHTML={{ __html: s.citation }}\n ></div>\n ) : (\n s.title\n ))\n )\n : \"-\"}\n </PresentationItem>\n {/* <PresentationItem label=\"Created\">\n {`${data.created} by ${data.createdByUser}`}\n </PresentationItem>\n <PresentationItem label=\"Modified\">\n {`${data.modified} by ${data.modifiedByUser}`}\n </PresentationItem> */}\n {/* <section className=\"code-box\" style={{marginTop: '32px'}}>\n <div className=\"code-box-title\">Settings</div>\n </section> */}\n </React.Fragment>\n )}\n </div>\n </React.Fragment>\n );\n }\n}\n\nexport default function SourceDataset({\n sourceDatasetKey,\n datasetKey,\n pageTitleTemplate,\n auth,\n ...routerProps\n}) {\n return (\n <RouterContext.Provider value={buildRouter(routerProps)}>\n <SourceDatasetPage\n sourceDatasetKey={sourceDatasetKey}\n datasetKey={datasetKey}\n pageTitleTemplate={pageTitleTemplate}\n auth={auth}\n />\n </RouterContext.Provider>\n );\n}\n","import withDatasetKey from \"../withDatasetKey\";\nimport { withTheme } from \"../withTheme\";\nimport sourceDataset from \"../SourceDataset\";\n\nexport const SourceDataset = withTheme(withDatasetKey(sourceDataset));\n"],"names":["Metrics","React","props","__publicField","dataset","datasetKey","client","config","res","r","jsx","MetricsPresentation","TaxonomicCoverage","taxonMap","t","_a","_b","_c","_d","usages","taxon","get","path","err","style","a","b","k","jsxs","tx","idx","LinkTo","Skeleton","AgentPresentation","agent","countryAlpha2","noLinks","country","IDENTIFIER_TYPES","SourceDatasetPage","getCountries","c","sourceDatasetKey","pageTitleTemplate","setAuth","prevProps","data","datasetError","Alert","ErrorMsg","Row","Col","BibTex","DatasetlogoWithFallback","PresentationItem","Tooltip","Button","LinkOutlined","isEmpty","DOMPurify","marked","Rate","i","isArray","s","SourceDataset","auth","routerProps","RouterContext","buildRouter","withTheme","withDatasetKey","sourceDataset"],"mappings":"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"}
1
+ {"version":3,"file":"sourceDataset.js","sources":["../src/SourceDataset/Metrics.js","../src/SourceDataset/TaxonomicCoverage.js","../src/SourceDataset/AgentPresentation.js","../src/SourceDataset/index.js","../src/entries/sourceDataset.js"],"sourcesContent":["import React from \"react\";\nimport config from \"../config\";\nimport client from \"../api/client\";\nimport MetricsPresentation from \"./MetricsPresentation\"\n\n\nclass Metrics extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n metrics: null,\n rank: null,\n loading: true,\n };\n }\n\n componentDidMount() {\n this.getData();\n this.getRank();\n }\n\n getData = () => {\n const { dataset, datasetKey } = this.props;\n client(\n `${config.dataApi}dataset/${datasetKey}/source/${dataset.key}/metrics`\n ).then((res) => {\n this.setState({ metrics: res.data });\n });\n };\n\n getRank = () => {\n client(`${config.dataApi}vocab/rank`).then((res) =>\n this.setState({ rank: res.data.map((r) => r.name) })\n );\n };\n render = () => <MetricsPresentation {...this.state} dataset={this.props.dataset} />\n}\n\nexport default Metrics;\n","import React from \"react\";\nimport config from \"../config\";\nimport client from \"../api/client\";\nimport {Skeleton} from \"antd\";\nimport { get } from \"lodash-es\";\nimport { LinkTo } from \"../router\";\n\nclass TaxonomicCoverage extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n loading: true,\n taxonMap: null\n };\n }\n\n componentDidMount() {\n this.getData();\n }\n\n getData = () => {\n const { dataset, datasetKey } = this.props;\n const taxonMap = {};\n client(\n `${config.dataApi}dataset/${datasetKey}/sector?limit=1000&subjectDatasetKey=${dataset.key}`\n ).then((res) => {\n return Promise.allSettled(\n res.data.result.filter(t => !!t?.target).map((t) =>\n client(\n `${config.dataApi}dataset/${datasetKey}/nameusage/search?TAXON_ID=${t?.target?.id}${t?.subject?.rank ? \"&rank=\"+t?.subject?.rank : \"\"}&q=${t?.subject?.name}`\n ).then((usages) => {\n const taxon = get(usages, \"data.result[0]\");\n if (taxon) {\n const path = taxon.classification\n .slice(1, taxon.classification.length - 1)\n .map((t) => t.name)\n .join(\" > \");\n if (taxonMap[path]) {\n taxonMap[path].push(\n taxon.classification[taxon.classification.length - 1]\n );\n } else {\n taxonMap[path] = [\n taxon.classification[taxon.classification.length - 1],\n ];\n }\n }\n })\n .catch(err => {\n console.log(t)\n console.log(err)})\n )\n ).then(() => this.setState({ taxonMap, loading: false }));\n });\n };\n\n render = () => {\n const { taxonMap } = this.state;\n const { style } = this.props;\n return taxonMap\n ? (Object.keys(taxonMap).length > 0 ? Object.keys(taxonMap).sort((a,b) => a.length - b.length).map((k) => (\n <div style={style} key={k}>\n <span>{k}{k !== \"\" ? \":\" : \"\"}</span>{\" \"}\n {taxonMap[k].map((tx, idx) => (\n <React.Fragment key={idx}>\n <LinkTo to=\"tree\" args={{ taxonKey: tx.id }}>{tx.name}</LinkTo>\n {idx !== taxonMap[k].length - 1 ? \", \" : \"\"}\n </React.Fragment>\n ))}\n </div>\n )) : \"N/A\")\n :\n <Skeleton active paragraph={{ rows: 4 }} />\n ;\n };\n}\n\nexport default TaxonomicCoverage;\n","import React from \"react\";\nimport { get } from \"lodash-es\";\n\nconst AgentPresentation = ({ agent, countryAlpha2, style, noLinks }) => {\n const country = get(agent, \"country\")\n ? get(\n countryAlpha2,\n `[${get(agent, \"country\")}].title`,\n get(agent, \"country\")\n )\n : null;\n return agent ? (\n <span style={style}>\n {(agent.given || agent.family) && (\n <span style={{ display: \"block\" }}>\n {[agent.family, agent.given].filter((a) => !!a).join(\", \")}\n </span>\n )}\n {agent.orcid &&\n (noLinks ? (\n <div>\n <img\n src=\"https://www.checklistbank.org/images/orcid_16x16.png\"\n style={{ flex: \"0 0 auto\" }}\n alt=\"\"\n ></img>{\" \"}\n {agent.orcid}\n </div>\n ) : (\n <a\n style={{ display: \"block\" }}\n href={`https://orcid.org/${agent.orcid}`}\n >\n <img\n src=\"https://www.checklistbank.org/images/orcid_16x16.png\"\n style={{ flex: \"0 0 auto\" }}\n alt=\"\"\n ></img>{\" \"}\n {agent.orcid}\n </a>\n ))}\n {agent.organisation && (\n <span style={{ display: \"block\" }}>{agent.organisation}</span>\n )}\n {agent.rorid &&\n (noLinks ? (\n <div>\n <img\n src=\"https://www.checklistbank.org/images/ror-logo-small.png\"\n style={{ flex: \"0 0 auto\", height: \"20px\" }}\n alt=\"\"\n ></img>{\" \"}\n {agent.rorid}\n </div>\n ) : (\n <a\n style={{ display: \"block\" }}\n href={`https://ror.org/${agent.rorid}`}\n >\n <img\n src=\"https://www.checklistbank.org/images/ror-logo-small.png\"\n style={{ flex: \"0 0 auto\", height: \"20px\" }}\n alt=\"\"\n ></img>{\" \"}\n {agent.rorid}\n </a>\n ))}\n\n {agent.department && (\n <span style={{ display: \"block\" }}>{agent.department}</span>\n )}\n {(agent.city || agent.state || country) && (\n <span style={{ display: \"block\" }}>\n {[agent.city, agent.state, country].filter((a) => !!a).join(\", \")}\n </span>\n )}\n \n </span>\n ) : null;\n};\n\n\n\nexport default AgentPresentation;\n","import React from \"react\";\nimport config from \"../config\";\nimport client, { setAuth } from \"../api/client\";\nimport { Alert, Rate, Row, Col, Button, Tooltip } from \"antd\";\nimport ErrorMsg from \"../components/ErrorMsg\";\nimport DatasetlogoWithFallback from \"../components/DatasetlogoWithFallback\";\nimport Metrics from \"./Metrics\";\nimport { get, isArray, isEmpty } from \"lodash-es\";\nimport PresentationItem from \"../components/PresentationItem\";\nimport TaxonomicCoverage from \"./TaxonomicCoverage\";\nimport { RouterContext, buildRouter } from \"../router\";\nimport AgentPresentation from \"./AgentPresentation\";\nimport { getCountries } from \"../api/enumeration\";\nimport BibTex from \"../components/BibTex\";\nimport { LinkOutlined } from \"@ant-design/icons\";\nimport { marked } from \"marked\";\nimport DOMPurify from \"dompurify\";\n// import ReferencePopover from \"./ReferencePopover\"\nconst IDENTIFIER_TYPES = {\n col: \"https://www.checklistbank.org/dataset/\",\n gbif: \"https://www.gbif.org/dataset/\",\n plazi: \"http://publication.plazi.org/id/\",\n doi: \"https://doi.org/\",\n};\nclass SourceDatasetPage extends React.Component {\n constructor(props) {\n super(props);\n setAuth(this.props.auth);\n this.state = {\n datasetLoading: true,\n data: null,\n rank: null,\n countryAlpha2: {},\n };\n }\n\n componentDidMount = () => {\n this.getData();\n getCountries().then((res) => {\n const countryAlpha2 = {};\n res.forEach((c) => {\n countryAlpha2[c.alpha2] = c;\n });\n this.setState({ countryAlpha2 });\n });\n };\n\n componentDidUpdate(prevProps) {\n if (\n prevProps.sourceDatasetKey !== this.props.sourceDatasetKey ||\n prevProps.datasetKey !== this.props.datasetKey\n ) {\n this.getData();\n }\n }\n\n getData = () => {\n const { datasetKey, sourceDatasetKey, pageTitleTemplate } = this.props;\n if (!sourceDatasetKey) return;\n\n client(`${config.dataApi}dataset/${datasetKey}/source/${sourceDatasetKey}`)\n .then((dataset) => {\n if (pageTitleTemplate && get(dataset, \"data.title\")) {\n document.title = pageTitleTemplate.replace(\n \"__dataset__\",\n dataset.data.title\n );\n }\n this.setState({ data: dataset.data, datasetError: null });\n })\n .catch((err) => this.setState({ datasetError: err, data: null }));\n };\n\n getRank = () => {\n client(`${config.dataApi}vocab/rank`).then((res) =>\n this.setState({ rank: res.data.map((r) => r.name) })\n );\n };\n\n render() {\n const { datasetKey } = this.props;\n const { data, countryAlpha2, datasetError } = this.state;\n\n return (\n <React.Fragment>\n <div\n className=\"catalogue-of-life\"\n style={{\n background: \"#fff\",\n padding: 24,\n minHeight: 280,\n margin: \"16px 0\",\n fontSize: \"12px\",\n }}\n >\n {datasetError && (\n <Alert message={<ErrorMsg error={datasetError} />} type=\"error\" />\n )}\n {data && (\n <Row>\n <Col flex=\"auto\">\n {/* <h1\n style={{ fontSize: \"30px\", fontWeight: '400', paddingLeft: \"10px\" , display: 'inline-block', textTransform: 'none'}}\n \n >Database details</h1> */}\n <h1\n style={{\n fontSize: \"30px\",\n fontWeight: \"400\",\n paddingLeft: \"10px\",\n display: \"inline-block\",\n textTransform: \"none\",\n }}\n >\n {data.title}\n </h1>\n {data && (\n <React.Fragment>\n <br />\n <BibTex\n style={{ marginLeft: \"8px\", height: \"32px\" }}\n datasetKey={datasetKey}\n sourceDatasetKey={\n datasetKey !== data.key ? data.key : undefined\n }\n />\n </React.Fragment>\n )}\n </Col>\n\n <Col style={{ textAlign: \"right\" }}>\n <DatasetlogoWithFallback\n auth={this.props.auth}\n style={{\n maxWidth: \"100%\",\n height: \"auto\",\n marginRight: \"8px\",\n }}\n datasetKey={datasetKey}\n sourceDatasetKey={data.key}\n />\n </Col>\n </Row>\n )}\n\n {data && (\n <React.Fragment>\n <PresentationItem label=\"Short name\">\n {data.alias}\n <Tooltip\n title=\"Visit in COL Checklistbank\"\n getPopupContainer={() =>\n document.getElementsByClassName(`catalogue-of-life`)[0]\n }\n >\n <Button\n type=\"link\"\n href={`https://www.checklistbank.org/dataset/${data.key}`}\n >\n <LinkOutlined />{\" \"}\n </Button>\n </Tooltip>\n </PresentationItem>\n <PresentationItem label=\"Full name\">\n {data.title}\n </PresentationItem>\n {(data.version || data.issued) && (\n <PresentationItem\n label={`${data.version ? \"Version\" : \"\"}${\n data.version && data.issued ? \" / \" : \"\"\n }${data.issued ? \"Issued\" : \"\"}`}\n >\n {(data.version || data.issued) &&\n `${data.version ? data.version : \"\"}${\n data.issued ? \" / \" + data.issued : \"\"\n }`}\n </PresentationItem>\n )}\n <PresentationItem label=\"DOI\">\n {data.doi ? (\n <a href={`https://doi.org/${data.doi}`}>\n <img\n src=\"https://www.checklistbank.org/images/DOI_logo.png\"\n style={{ flex: \"0 0 auto\", height: \"16px\" }}\n alt=\"\"\n ></img>\n {data.doi}\n </a>\n ) : (\n \"-\"\n )}\n </PresentationItem>\n {data.contact && !isEmpty(data.contact) && (\n <PresentationItem label=\"Contact\">\n <AgentPresentation\n countryAlpha2={countryAlpha2}\n agent={data.contact}\n />\n </PresentationItem>\n )}\n {data.publisher && !isEmpty(data.publisher) && (\n <PresentationItem label=\"Publisher\">\n <AgentPresentation\n countryAlpha2={countryAlpha2}\n agent={data.publisher}\n />\n </PresentationItem>\n )}\n {data.creator && (\n <PresentationItem label=\"Creator\">\n <Row gutter={[8, 8]}>\n {data.creator.map((a) => (\n <Col span={8}>\n <AgentPresentation\n countryAlpha2={countryAlpha2}\n agent={a}\n />\n </Col>\n ))}\n </Row>\n </PresentationItem>\n )}\n {data.editor && (\n <PresentationItem label=\"Editor\">\n <Row gutter={[8, 8]}>\n {data.editor.map((a) => (\n <Col span={8}>\n <AgentPresentation\n countryAlpha2={countryAlpha2}\n agent={a}\n />\n </Col>\n ))}\n </Row>\n </PresentationItem>\n )}\n {data.contributor && (\n <PresentationItem label=\"Contributor\">\n <Row gutter={[8, 8]}>\n {data.contributor.map((a) => (\n <Col span={8}>\n <AgentPresentation\n countryAlpha2={countryAlpha2}\n agent={a}\n />\n </Col>\n ))}\n </Row>\n </PresentationItem>\n )}\n <PresentationItem label=\"Taxonomic coverage\">\n <TaxonomicCoverage\n dataset={data}\n datasetKey={datasetKey}\n />\n </PresentationItem>\n <Metrics\n datasetKey={datasetKey}\n dataset={data}\n />\n <PresentationItem label=\"Abstract\">\n \n {data.description ? (\n <span\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(marked.parse(data.description)),\n }}\n ></span>\n ) : \"\"}\n </PresentationItem>\n <PresentationItem label=\"Taxonomic scope\">\n {data.taxonomicScope || \"-\"}\n </PresentationItem>\n <PresentationItem label=\"Geographic scope\">\n {data.geographicScope || \"-\"}\n </PresentationItem>\n <PresentationItem label=\"Temporal scope\">\n {data.temporalScope || \"-\"}\n </PresentationItem>\n {/* <PresentationItem label=\"Origin\">\n {data.origin}\n </PresentationItem> */}\n {/* <PresentationItem label=\"Type\">{data.type}</PresentationItem>\n */}{\" \"}\n <PresentationItem label=\"License\">\n {data.license || \"-\"}\n </PresentationItem>\n <PresentationItem label=\"Checklist Confidence\">\n {<Rate value={data.confidence} disabled></Rate>}\n </PresentationItem>\n <PresentationItem label=\"Completeness\">\n {data.completeness}\n </PresentationItem>\n <PresentationItem label=\"Website\">\n {data.url ? (\n <a href={data.url} target=\"_blank\">\n {data.url}\n </a>\n ) : (\n \"-\"\n )}\n </PresentationItem>\n {/* <PresentationItem label=\"Logo Url\">\n {data.url && (\n <a href={data.logoUrl} target=\"_blank\">\n {data.logoUrl}\n </a>\n )}\n </PresentationItem> */}\n <PresentationItem label=\"ISSN\">\n {data.issn ? (\n <a\n href={`https://portal.issn.org/resource/ISSN/${data.issn}`}\n >\n {data.issn}\n </a>\n ) : (\n \"-\"\n )}\n </PresentationItem>\n <PresentationItem label=\"GBIF key\">\n {data.gbifKey ? (\n <a href={`https://www.gbif.org/dataset/${data.gbifKey}`}>\n {data.gbifKey}\n </a>\n ) : (\n \"-\"\n )}\n </PresentationItem>\n {/* <PresentationItem label=\"GBIF publisher key\">\n {data.gbifPublisherKey && (\n <a\n href={`https://www.gbif.org/publisher/${data.gbifPublisherKey}`}\n >\n {data.gbifPublisherKey}\n </a>\n )}\n </PresentationItem> */}\n <PresentationItem label=\"Identifiers\">\n {data.identifier ? (\n <ol\n style={{\n listStyle: \"none\",\n paddingInlineStart: \"0px\",\n }}\n >\n {Object.keys(data.identifier).map((i) => (\n <li\n style={{\n float: \"left\",\n marginRight: \"8px\",\n }}\n >\n {`${i.toUpperCase()}: `}\n {IDENTIFIER_TYPES[i] ? (\n <a\n href={`${IDENTIFIER_TYPES[i]}${data.identifier[i]}`}\n target=\"_blank\"\n >\n {data.identifier[i]}\n </a>\n ) : (\n data.identifier[i]\n )}\n </li>\n ))}\n </ol>\n ) : (\n \"-\"\n )}\n </PresentationItem>\n <PresentationItem label=\"Citation\">\n {data.citation && (\n <span\n dangerouslySetInnerHTML={{ __html: data.citation }}\n ></span>\n )}\n </PresentationItem>\n {/* <PresentationItem label=\"Derived from (sourceKey)\">\n {data.sourceKey}\n </PresentationItem> */}\n <PresentationItem label=\"Source\">\n {data.source && isArray(data.source)\n ? data.source.map(\n (s) =>\n !!s &&\n (s.citation ? (\n <div\n style={{ display: \"inline-block\" }}\n dangerouslySetInnerHTML={{ __html: s.citation }}\n ></div>\n ) : (\n s.title\n ))\n )\n : \"-\"}\n </PresentationItem>\n {/* <PresentationItem label=\"Created\">\n {`${data.created} by ${data.createdByUser}`}\n </PresentationItem>\n <PresentationItem label=\"Modified\">\n {`${data.modified} by ${data.modifiedByUser}`}\n </PresentationItem> */}\n {/* <section className=\"code-box\" style={{marginTop: '32px'}}>\n <div className=\"code-box-title\">Settings</div>\n </section> */}\n </React.Fragment>\n )}\n </div>\n </React.Fragment>\n );\n }\n}\n\nexport default function SourceDataset({\n sourceDatasetKey,\n datasetKey,\n pageTitleTemplate,\n auth,\n ...routerProps\n}) {\n return (\n <RouterContext.Provider value={buildRouter(routerProps)}>\n <SourceDatasetPage\n sourceDatasetKey={sourceDatasetKey}\n datasetKey={datasetKey}\n pageTitleTemplate={pageTitleTemplate}\n auth={auth}\n />\n </RouterContext.Provider>\n );\n}\n","import withDatasetKey from \"../withDatasetKey\";\nimport { withTheme } from \"../withTheme\";\nimport sourceDataset from \"../SourceDataset\";\n\nexport const SourceDataset = withTheme(withDatasetKey(sourceDataset));\n"],"names":["Metrics","React","props","__publicField","dataset","datasetKey","client","config","res","r","jsx","MetricsPresentation","TaxonomicCoverage","taxonMap","t","_a","_b","_c","_d","usages","taxon","get","path","err","style","a","b","k","jsxs","tx","idx","LinkTo","Skeleton","AgentPresentation","agent","countryAlpha2","noLinks","country","IDENTIFIER_TYPES","SourceDatasetPage","getCountries","c","sourceDatasetKey","pageTitleTemplate","setAuth","prevProps","data","datasetError","Alert","ErrorMsg","Row","Col","BibTex","DatasetlogoWithFallback","PresentationItem","Tooltip","Button","LinkOutlined","isEmpty","DOMPurify","marked","Rate","i","isArray","s","SourceDataset","auth","routerProps","RouterContext","buildRouter","withTheme","withDatasetKey","sourceDataset"],"mappings":"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"}