col-browser 2.3.1 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/chunks/{Distributions-BWucAjsL.js → Distributions-BzwnK_GR.js} +2 -2
- package/es/chunks/{Distributions-BWucAjsL.js.map → Distributions-BzwnK_GR.js.map} +1 -1
- package/es/chunks/MergedDataBadge-CdQ7RzDt.js +82 -0
- package/es/chunks/MergedDataBadge-CdQ7RzDt.js.map +1 -0
- package/es/chunks/XrGutter-CG0gAVhH.js +23 -0
- package/es/chunks/XrGutter-CG0gAVhH.js.map +1 -0
- package/es/search.js +153 -154
- package/es/search.js.map +1 -1
- package/es/sourceDatasetList.js +17 -21
- package/es/sourceDatasetList.js.map +1 -1
- package/es/taxon.js +342 -347
- package/es/taxon.js.map +1 -1
- package/es/taxonDistribution.js +1 -1
- package/es/tree.js +1 -1
- package/package.json +1 -1
- package/umd/col-browser.js +171 -223
- package/umd/col-browser.js.map +1 -1
- package/umd/col-browser.min.js +4 -4
- package/umd/col-browser.min.js.map +1 -1
- package/es/chunks/MergedDataBadge-DsTsn5Xu.js +0 -134
- package/es/chunks/MergedDataBadge-DsTsn5Xu.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/** */\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/** */\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 MergedDataBadge from \"../components/MergedDataBadge\";\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: \"\",\n dataIndex: [\"usage\", \"merged\"],\n key: \"merged\",\n width: 12,\n render: (text, record) =>\n record?.usage?.merged ? <MergedDataBadge datasetKey={record?.usage?.datasetKey} verbatimSourceKey={record?.usage?.verbatimSourceKey} /> : \"\",\n },\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 <LinkTo to=\"taxon\" args={id}>\n <span dangerouslySetInnerHTML={{ __html: text }} />\n </LinkTo>\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","_a","MergedDataBadge","_b","_c","id","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/** */\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/** */\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]}
|
package/es/sourceDatasetList.js
CHANGED
|
@@ -7,25 +7,24 @@ import { j as s } from "./chunks/jsx-runtime-BzflLqGi.js";
|
|
|
7
7
|
import R from "react";
|
|
8
8
|
import { s as w, c as f, L as d, R as v, b as T } from "./chunks/router-CssZk5qZ.js";
|
|
9
9
|
import { Row as j, Alert as I, Col as y, Checkbox as E, Table as A, Tooltip as C } from "antd";
|
|
10
|
-
import { get as
|
|
10
|
+
import { get as M, merge as _, isArray as K } from "lodash-es";
|
|
11
11
|
import { E as G } from "./chunks/ErrorMsg-K8k5PPTp.js";
|
|
12
12
|
import { D as F } from "./chunks/DatasetlogoWithFallback-B9WXvNCA.js";
|
|
13
13
|
import { M as H } from "./chunks/MetricsPresentation-DKCJQOtf.js";
|
|
14
14
|
import { P as k } from "./chunks/PresentationItem-C4yZ555-.js";
|
|
15
|
-
import { M } from "./chunks/MergedDataBadge-
|
|
15
|
+
import { M as z } from "./chunks/MergedDataBadge-CdQ7RzDt.js";
|
|
16
|
+
import { X as L } from "./chunks/XrGutter-CG0gAVhH.js";
|
|
16
17
|
const S = (r) => {
|
|
17
18
|
const l = r.key ? { SECTOR_DATASET_KEY: r.key } : { SECTOR_PUBLISHER_KEY: r.id };
|
|
18
19
|
return K(r.sectorModes) && (l.sectorMode = r.sectorModes), l;
|
|
19
|
-
}, c = (r, l) =>
|
|
20
|
+
}, c = (r, l) => M(r, `metrics.taxaByRankCount.${l || "species"}`) || 0, O = (r, l, a) => [
|
|
20
21
|
{
|
|
21
22
|
title: "Title",
|
|
22
23
|
dataIndex: ["alias"],
|
|
23
24
|
key: "title",
|
|
24
25
|
ellipsis: !0,
|
|
25
26
|
render: (i, e) => /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
|
|
26
|
-
e.id ? /* @__PURE__ */ s.jsxs(
|
|
27
|
-
/* @__PURE__ */ s.jsx(M, { style: { marginLeft: "0px" } }),
|
|
28
|
-
" ",
|
|
27
|
+
e.id ? /* @__PURE__ */ s.jsxs(L, { merged: !0, children: [
|
|
29
28
|
"Publisher: ",
|
|
30
29
|
" ",
|
|
31
30
|
/* @__PURE__ */ s.jsx(
|
|
@@ -39,10 +38,7 @@ const S = (r) => {
|
|
|
39
38
|
),
|
|
40
39
|
" "
|
|
41
40
|
] }) : /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
|
|
42
|
-
|
|
43
|
-
!!(e != null && e.merged) && /* @__PURE__ */ s.jsx(M, { style: { marginLeft: "0px" } }),
|
|
44
|
-
" ",
|
|
45
|
-
/* @__PURE__ */ s.jsx(d, { to: "source", args: e.key, children: e.alias || e.title }),
|
|
41
|
+
/* @__PURE__ */ s.jsx(L, { merged: !!(e != null && e.merged), children: /* @__PURE__ */ s.jsx(d, { to: "source", args: e.key, children: e.alias || e.title }) }),
|
|
46
42
|
!!(e != null && e.taxonomicScope) && /* @__PURE__ */ s.jsx("br", {})
|
|
47
43
|
] }),
|
|
48
44
|
!!(e != null && e.taxonomicScope) && (e == null ? void 0 : e.taxonomicScope)
|
|
@@ -55,7 +51,7 @@ const S = (r) => {
|
|
|
55
51
|
title: "Datasets",
|
|
56
52
|
dataIndex: ["metrics", "datasetCount"],
|
|
57
53
|
key: "datasets",
|
|
58
|
-
render: (i, e) =>
|
|
54
|
+
render: (i, e) => M(e, "metrics.datasetCount", 1).toLocaleString("en-GB")
|
|
59
55
|
},
|
|
60
56
|
/* {
|
|
61
57
|
title: "Version",
|
|
@@ -162,7 +158,7 @@ const S = (r) => {
|
|
|
162
158
|
sorter: (i, e) => c(i) - c(e)
|
|
163
159
|
}
|
|
164
160
|
].filter((i) => a ? !0 : i.key !== "datasets");
|
|
165
|
-
class
|
|
161
|
+
class U extends R.Component {
|
|
166
162
|
constructor(a) {
|
|
167
163
|
super(a);
|
|
168
164
|
m(this, "componentDidMount", () => {
|
|
@@ -209,7 +205,7 @@ class O extends R.Component {
|
|
|
209
205
|
f(`${x.dataApi}dataset/${a}/sector/publisher?limit=1000`)
|
|
210
206
|
]).then(([i, e]) => {
|
|
211
207
|
let o = {};
|
|
212
|
-
const u = i.data || [], h =
|
|
208
|
+
const u = i.data || [], h = M(e, "data.result", []);
|
|
213
209
|
return h.length > 0 && this.setState({ hasPublishers: !0 }), Promise.all([
|
|
214
210
|
...h.map((t) => this.getPublisherMetrics(a, t.id).then(
|
|
215
211
|
(n) => ({
|
|
@@ -278,7 +274,7 @@ class O extends R.Component {
|
|
|
278
274
|
/* @__PURE__ */ s.jsxs(j, { children: [
|
|
279
275
|
/* @__PURE__ */ s.jsxs(y, { span: 12, style: { marginBottom: "8px" }, children: [
|
|
280
276
|
"Include ",
|
|
281
|
-
/* @__PURE__ */ s.jsx(
|
|
277
|
+
/* @__PURE__ */ s.jsx(z, {}),
|
|
282
278
|
" ",
|
|
283
279
|
/* @__PURE__ */ s.jsx(
|
|
284
280
|
E,
|
|
@@ -291,20 +287,20 @@ class O extends R.Component {
|
|
|
291
287
|
)
|
|
292
288
|
] }),
|
|
293
289
|
/* @__PURE__ */ s.jsx(y, { span: 12, style: { textAlign: "right", marginBottom: "8px" }, children: `Source datasets: ${a.reduce((t, n) => {
|
|
294
|
-
var p, g,
|
|
290
|
+
var p, g, b;
|
|
295
291
|
if (!this.state.showMerged && (n != null && n.merged || n != null && n.id))
|
|
296
292
|
return t;
|
|
297
293
|
if (!((p = n == null ? void 0 : n.metrics) != null && p.publisherKey))
|
|
298
294
|
return t + 1;
|
|
299
295
|
if ((g = n == null ? void 0 : n.metrics) != null && g.publisherKey)
|
|
300
|
-
return t + ((
|
|
296
|
+
return t + ((b = n == null ? void 0 : n.metrics) == null ? void 0 : b.datasetCount);
|
|
301
297
|
}, 0).toLocaleString("en-GB")}` })
|
|
302
298
|
] }),
|
|
303
299
|
!u && /* @__PURE__ */ s.jsx(
|
|
304
300
|
A,
|
|
305
301
|
{
|
|
306
302
|
size: "small",
|
|
307
|
-
columns:
|
|
303
|
+
columns: O(h, this.props.auth, o),
|
|
308
304
|
dataSource: a.filter((t) => {
|
|
309
305
|
var n, p, g;
|
|
310
306
|
return !this.state.showMerged && (t != null && t.merged || t != null && t.id) ? !1 : (n = t == null ? void 0 : t.metrics) != null && n.publisherKey ? !(((p = t == null ? void 0 : t.metrics) == null ? void 0 : p.datasetCount) === 0 || ((g = t == null ? void 0 : t.metrics) == null ? void 0 : g.usagesCount) === 0) : !0;
|
|
@@ -353,15 +349,15 @@ class O extends R.Component {
|
|
|
353
349
|
);
|
|
354
350
|
}
|
|
355
351
|
}
|
|
356
|
-
function
|
|
352
|
+
function X({
|
|
357
353
|
datasetKey: r,
|
|
358
354
|
auth: l,
|
|
359
355
|
...a
|
|
360
356
|
}) {
|
|
361
|
-
return /* @__PURE__ */ s.jsx(v.Provider, { value: T(a), children: /* @__PURE__ */ s.jsx(
|
|
357
|
+
return /* @__PURE__ */ s.jsx(v.Provider, { value: T(a), children: /* @__PURE__ */ s.jsx(U, { datasetKey: r, auth: l }) });
|
|
362
358
|
}
|
|
363
|
-
const
|
|
359
|
+
const re = P(D(X));
|
|
364
360
|
export {
|
|
365
|
-
|
|
361
|
+
re as SourceDatasetList
|
|
366
362
|
};
|
|
367
363
|
//# sourceMappingURL=sourceDatasetList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceDatasetList.js","sources":["../src/SourceDatasetList/index.js","../src/entries/sourceDatasetList.js"],"sourcesContent":["import React from \"react\";\nimport client, { setAuth } from \"../api/client\";\nimport { Table, Alert, Row, Col, Tooltip, Checkbox } from \"antd\";\nimport config from \"../config\";\nimport { get, isArray, merge } from \"lodash-es\";\nimport ErrorMsg from \"../components/ErrorMsg\";\nimport DatasetlogoWithFallback from \"../components/DatasetlogoWithFallback\";\nimport MetricsPresentation from \"../SourceDataset/MetricsPresentation\";\nimport PresentationItem from \"../components/PresentationItem\";\nimport MergedDataBadge from \"../components/MergedDataBadge\";\nimport { RouterContext, buildRouter, LinkTo } from \"../router\";\nconst baseFilters = (record) => {\n const f = record.key\n ? { SECTOR_DATASET_KEY: record.key }\n : { SECTOR_PUBLISHER_KEY: record.id };\n if (isArray(record.sectorModes)) f.sectorMode = record.sectorModes;\n return f;\n};\nconst getLivingSpecies = (record, rank) =>\n get(record, `metrics.taxaByRankCount.${rank || \"species\"}`) || 0;\nconst getExtinctSpecies = (record) =>\n get(record, \"metrics.extinctTaxaByRankCount.species\") || 0;\nconst getSearchParam = (dataset) =>\n dataset.key\n ? `SECTOR_DATASET_KEY=${dataset.key}`\n : `SECTOR_PUBLISHER_KEY=${dataset.id}`;\n\nconst getColumns = (\n datasetKey,\n auth,\n hasPublishers\n) =>\n [\n {\n title: \"Title\",\n\n dataIndex: [\"alias\"],\n key: \"title\",\n ellipsis: true,\n render: (text, record) => {\n return (\n <>\n {record.id ? (\n <span>\n <MergedDataBadge style={{marginLeft: \"0px\"}} /> {\"Publisher: \"}{\" \"}\n <a\n href={`https://www.checklistbank.org/dataset/${datasetKey}/publisher/${record.id}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n /* onClick={() => {\n window.location.href = `https://www.checklistbank.org/dataset/${datasetKey}/publisher/${record.id}`;\n }} */\n dangerouslySetInnerHTML={{ __html: text }}\n />{\" \"}\n </span>\n ) : (\n <>\n {\" \"}\n {!!record?.merged && <MergedDataBadge style={{marginLeft: \"0px\"}} />}{\" \"}\n <LinkTo to=\"source\" args={record.key}>\n {record.alias || record.title}\n </LinkTo>\n {!!record?.taxonomicScope && <br/>}\n </>\n )}\n {!!record?.taxonomicScope && record?.taxonomicScope/* (\n <div style={{ width: \"90%\", wordBreak: \"break-all\" }}>\n {record.taxonomicScope.length > 200\n ? record.taxonomicScope.substring(0, 200) + \"...\"\n : record.taxonomicScope}\n </div>\n ) */}\n </>\n );\n },\n width: \"30%\",\n sorter: (a, b) =>\n a.alias && b.alias ? a.alias.localeCompare(b.alias) : 0,\n // defaultSortOrder: 'ascend'\n },\n {\n title: \"Datasets\",\n dataIndex: [\"metrics\", \"datasetCount\"],\n key: \"datasets\",\n render: (text, record) =>\n get(record, \"metrics.datasetCount\", 1).toLocaleString(\"en-GB\"),\n },\n /* {\n title: \"Version\",\n dataIndex: [\"version\"],\n key: \"version\"\n }, */\n/* {\n title: \"\",\n dataIndex: [\"logo\"],\n key: \"logo\",\n render: (text, record) => (\n <DatasetlogoWithFallback\n auth={auth}\n datasetKey={datasetKey}\n datasetKey={record.key}\n style={{ maxHeight: \"32px\" }}\n size=\"SMALL\"\n />\n ),\n }, */\n /* {\n title: \"Taxonomic scope\",\n dataIndex: [\"taxonomicScope\"],\n key: \"taxonomicScope\",\n ellipsis: true,\n\n }, */\n {\n title: (\n <Tooltip\n placement=\"topLeft\"\n title={\"Count of all accepted families including extinct species\"}\n getPopupContainer={() => document.getElementById(\"familyCount\")}\n >\n <span id=\"familyCount\">Families</span>\n </Tooltip>\n ),\n dataIndex: [\"metrics\", \"taxaByRankCount\", \"family\"],\n key: \"species\",\n render: (text, record) => (\n <LinkTo\n to=\"search\"\n args={{\n ...baseFilters(record),\n rank: \"family\",\n status: [\"accepted\", \"provisionally accepted\"],\n }}\n >\n {getLivingSpecies(record, \"family\").toLocaleString(\"en-GB\")}\n </LinkTo>\n ),\n sorter: (a, b) => getLivingSpecies(a,\"family\") - getLivingSpecies(b,\"family\"),\n },\n {\n title: (\n <Tooltip\n placement=\"topLeft\"\n title={\"Count of all accepted genera including extinct species\"}\n getPopupContainer={() => document.getElementById(\"genusCount\")}\n >\n <span id=\"genusCount\">Genera</span>\n </Tooltip>\n ),\n dataIndex: [\"metrics\", \"taxaByRankCount\", \"genus\"],\n key: \"species\",\n render: (text, record) => (\n <LinkTo\n to=\"search\"\n args={{\n ...baseFilters(record),\n rank: \"genus\",\n status: [\"accepted\", \"provisionally accepted\"],\n }}\n >\n {getLivingSpecies(record, \"genus\").toLocaleString(\"en-GB\")}\n </LinkTo>\n ),\n sorter: (a, b) => getLivingSpecies(a,\"genus\") - getLivingSpecies(b,\"genus\"),\n },\n {\n title: (\n <Tooltip\n placement=\"topLeft\"\n title={\"Count of all accepted species including extinct species\"}\n getPopupContainer={() => document.getElementById(\"speciesCount\")}\n >\n <span id=\"speciesCount\">Species</span>\n </Tooltip>\n ),\n dataIndex: [\"metrics\", \"taxaByRankCount\", \"species\"],\n key: \"species\",\n render: (text, record) => (\n <LinkTo\n to=\"search\"\n args={{\n ...baseFilters(record),\n rank: \"species\",\n status: [\"accepted\", \"provisionally accepted\"],\n }}\n >\n {getLivingSpecies(record).toLocaleString(\"en-GB\")}\n </LinkTo>\n ),\n sorter: (a, b) => getLivingSpecies(a) - getLivingSpecies(b),\n },\n\n ].filter((clm) => (!hasPublishers ? clm.key !== \"datasets\" : true));\n\nclass SourceDatasetListPage extends React.Component {\n constructor(props) {\n super(props);\n setAuth(this.props.auth);\n this.state = {\n data: [],\n rank: null,\n hasPublishers: false,\n loading: false,\n showMerged: true,\n };\n }\n\n componentDidMount = () => {\n this.getData();\n this.getRank();\n };\n\n /* \n getDataOLD = () => {\n this.setState({ loading: true });\n const { datasetKey } = this.props;\n \n client(`${config.dataApi}dataset/${datasetKey}/source`)\n .then((res) => {\n return Promise.all(\n res.data.map((r) => \n client(\n `${config.dataApi}dataset/${datasetKey}/source/${r.key}/metrics`\n ).then((res) => ({...r, metrics: res.data}))\n \n )\n );\n \n })\n .then(data => {\n\n this.setState({\n loading: false,\n data: data,\n err: null\n });\n })\n .catch(err => {\n this.setState({ loading: false, error: err, data: [] });\n });\n }; */\n\n getData = () => {\n this.setState({ loading: true });\n const { datasetKey } = this.props;\n Promise.all([\n client(\n /* `${config.dataApi}dataset?limit=1000&contributesTo=${datasetKey}&sortBy=alias` */\n // `${config.dataApi}dataset/${datasetKey}/source?inclPublisherSources=false`\n `${config.dataApi}dataset/${datasetKey}/source?splitMerge=true`\n ),\n client(`${config.dataApi}dataset/${datasetKey}/sector/publisher?limit=1000`),\n ])\n .then(([res, publisherRes]) => {\n let columns = {};\n const datasetData = res.data || [];\n const publisherData = get(publisherRes, \"data.result\", []);\n if (publisherData.length > 0) {\n this.setState({ hasPublishers: true });\n }\n return Promise.all([\n ...publisherData.map((r) => {\n return this.getPublisherMetrics(datasetKey, r.id).then(\n (metrics) => {\n // columns = merge(columns, metrics);\n return {\n ...r,\n metrics: metrics,\n };\n }\n );\n }),\n ...datasetData.map((r) => {\n return this.getMetrics(datasetKey, r).then((metrics) => {\n columns = merge(columns, metrics);\n return {\n ...r,\n metrics: metrics,\n };\n });\n }),\n ]);\n })\n .then((data) => {\n this.setState({\n loading: false,\n data: data\n .filter((p) => !p?.id || (!!p?.id && p?.metrics?.sectorCount > 0))\n .sort((a, b) => {\n if (!!a.id && !b.id) {\n return a;\n } else if (!!b.id && !a.id) {\n return b;\n } else if (a.alias && b.alias) {\n return a.alias.localeCompare(b.alias) === 0\n ? a.merged === true\n ? 1\n : -1\n : a.alias.localeCompare(b.alias);\n } else {\n return 0;\n }\n }),\n err: null,\n });\n })\n .catch((err) => {\n this.setState({ loading: false, error: err, data: [] });\n });\n };\n\n getMetrics = (datasetKey, source) => {\n return client(\n `${config.dataApi}dataset/${datasetKey}/source/${source?.key}/metrics?merged=${source?.merged}`\n ).then((res) => res.data);\n };\n getPublisherMetrics = (datasetKey, publisherId) => {\n return client(\n `${config.dataApi}dataset/${datasetKey}/sector/publisher/${publisherId}/metrics`\n ).then((res) => res.data);\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 { data, loading, rank, hasPublishers, error } = this.state;\n const { datasetKey } = this.props;\n\n return (\n <div\n className=\"catalogue-of-life\"\n style={{\n background: \"#fff\",\n padding: 24,\n minHeight: 280,\n margin: \"16px 0\",\n }}\n >\n <Row>\n {error && (\n <Alert\n style={{ marginBottom: \"10px\" }}\n message={<ErrorMsg error={error} />}\n type=\"error\"\n />\n )}\n </Row>\n\n <Row>\n <Col span={12} style={{ marginBottom: \"8px\" }}>\n Include <MergedDataBadge />{\" \"}\n <Checkbox\n checked={this.state.showMerged}\n onChange={({ target: { checked } }) =>\n this.setState({\n showMerged: checked,\n })\n }\n />\n </Col>\n <Col span={12} style={{ textAlign: \"right\", marginBottom: \"8px\" }}>\n {/* {`Source datasets: ${data\n .filter((d) => {\n if (!this.state.showMerged && d?.merged) {\n return false;\n }\n if (!d?.metrics?.publisherKey) {\n return true;\n } else {\n return !(\n d?.metrics?.datasetCount === 0 ||\n d?.metrics?.usagesCount === 0\n );\n }\n })\n .length.toLocaleString(\"en-GB\")}`} */}\n {`Source datasets: ${data.reduce((acc, d) => {\n if (!this.state.showMerged && (d?.merged || !!d?.id)) {\n return acc;\n }\n if (!d?.metrics?.publisherKey) {\n return acc + 1;\n }\n if (d?.metrics?.publisherKey) {\n return acc + d?.metrics?.datasetCount;\n }\n },0).toLocaleString(\"en-GB\")}`}\n </Col>\n </Row>\n {!error && (\n <Table\n size=\"small\"\n columns={getColumns(datasetKey, this.props.auth, hasPublishers)}\n dataSource={data.filter((d) => {\n if (!this.state.showMerged && (d?.merged || !!d?.id)) {\n return false;\n }\n \n if (!d?.metrics?.publisherKey) {\n return true;\n } else {\n return !(\n d?.metrics?.datasetCount === 0 ||\n d?.metrics?.usagesCount === 0\n );\n }\n })}\n loading={loading}\n rowKey={(record) => `${record.key || record.id}-${record.merged}`}\n showSorterTooltip={false}\n pagination={false}\n expandedRowRender={(dataset) => (\n <div style={{ marginLeft: \"40px\" }}>\n \n <Row>\n <Col flex=\"auto\" style={{paddingLeft: \"8px\"}}><h3>{dataset?.title}</h3></Col>\n <Col>\n <DatasetlogoWithFallback\n auth={this.props.auth}\n datasetKey={datasetKey}\n sourceDatasetKey={dataset.key}\n style={{ maxHeight: \"64px\" }}\n size=\"MEDIUM\"\n />\n </Col>\n </Row>\n <MetricsPresentation\n metrics={dataset.metrics}\n dataset={dataset}\n rank={rank}\n />\n <div style={{ marginTop: \"12px\" }}>\n {dataset?.version && (\n <PresentationItem md={8} label={`Dataset version`}>\n {dataset.version}\n </PresentationItem>\n )}\n\n {dataset?.taxonomicScope && (\n <PresentationItem md={8} label={`Taxonomic scope`}>\n {dataset.taxonomicScope}\n </PresentationItem>\n )}\n </div>\n\n {dataset.citation && (\n <div style={{ marginTop: \"12px\" }}>\n <PresentationItem md={24} label={`Citation`}>\n <div\n dangerouslySetInnerHTML={{ __html: dataset.citation }}\n ></div>\n </PresentationItem>\n </div>\n )}\n </div>\n )}\n />\n )}\n </div>\n );\n }\n}\n\nexport default function SourceDatasetList({\n datasetKey,\n auth,\n ...routerProps\n}) {\n return (\n <RouterContext.Provider value={buildRouter(routerProps)}>\n <SourceDatasetListPage datasetKey={datasetKey} auth={auth} />\n </RouterContext.Provider>\n );\n}\n","import withDatasetKey from \"../withDatasetKey\";\nimport { withTheme } from \"../withTheme\";\nimport sourceDatasetList from \"../SourceDatasetList\";\n\nexport const SourceDatasetList = withTheme(withDatasetKey(sourceDatasetList));\n"],"names":["baseFilters","record","f","isArray","getLivingSpecies","rank","get","getColumns","datasetKey","auth","hasPublishers","text","jsxs","Fragment","jsx","MergedDataBadge","LinkTo","a","b","Tooltip","clm","SourceDatasetListPage","React","props","__publicField","client","config","res","publisherRes","columns","datasetData","publisherData","r","metrics","merge","data","p","_a","err","source","publisherId","setAuth","loading","error","Row","Alert","ErrorMsg","Col","Checkbox","checked","acc","d","_b","_c","Table","dataset","DatasetlogoWithFallback","MetricsPresentation","PresentationItem","SourceDatasetList","routerProps","RouterContext","buildRouter","withTheme","withDatasetKey","sourceDatasetList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sourceDatasetList.js","sources":["../src/SourceDatasetList/index.js","../src/entries/sourceDatasetList.js"],"sourcesContent":["import React from \"react\";\nimport client, { setAuth } from \"../api/client\";\nimport { Table, Alert, Row, Col, Tooltip, Checkbox } from \"antd\";\nimport config from \"../config\";\nimport { get, isArray, merge } from \"lodash-es\";\nimport ErrorMsg from \"../components/ErrorMsg\";\nimport DatasetlogoWithFallback from \"../components/DatasetlogoWithFallback\";\nimport MetricsPresentation from \"../SourceDataset/MetricsPresentation\";\nimport PresentationItem from \"../components/PresentationItem\";\nimport MergedDataBadge from \"../components/MergedDataBadge\";\nimport XrGutter from \"../components/XrGutter\";\nimport { RouterContext, buildRouter, LinkTo } from \"../router\";\nconst baseFilters = (record) => {\n const f = record.key\n ? { SECTOR_DATASET_KEY: record.key }\n : { SECTOR_PUBLISHER_KEY: record.id };\n if (isArray(record.sectorModes)) f.sectorMode = record.sectorModes;\n return f;\n};\nconst getLivingSpecies = (record, rank) =>\n get(record, `metrics.taxaByRankCount.${rank || \"species\"}`) || 0;\nconst getExtinctSpecies = (record) =>\n get(record, \"metrics.extinctTaxaByRankCount.species\") || 0;\nconst getSearchParam = (dataset) =>\n dataset.key\n ? `SECTOR_DATASET_KEY=${dataset.key}`\n : `SECTOR_PUBLISHER_KEY=${dataset.id}`;\n\nconst getColumns = (\n datasetKey,\n auth,\n hasPublishers\n) =>\n [\n {\n title: \"Title\",\n\n dataIndex: [\"alias\"],\n key: \"title\",\n ellipsis: true,\n render: (text, record) => {\n return (\n <>\n {record.id ? (\n <XrGutter merged>\n {\"Publisher: \"}{\" \"}\n <a\n href={`https://www.checklistbank.org/dataset/${datasetKey}/publisher/${record.id}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n dangerouslySetInnerHTML={{ __html: text }}\n />{\" \"}\n </XrGutter>\n ) : (\n <>\n <XrGutter merged={!!record?.merged}>\n <LinkTo to=\"source\" args={record.key}>\n {record.alias || record.title}\n </LinkTo>\n </XrGutter>\n {!!record?.taxonomicScope && <br/>}\n </>\n )}\n {!!record?.taxonomicScope && record?.taxonomicScope/* (\n <div style={{ width: \"90%\", wordBreak: \"break-all\" }}>\n {record.taxonomicScope.length > 200\n ? record.taxonomicScope.substring(0, 200) + \"...\"\n : record.taxonomicScope}\n </div>\n ) */}\n </>\n );\n },\n width: \"30%\",\n sorter: (a, b) =>\n a.alias && b.alias ? a.alias.localeCompare(b.alias) : 0,\n // defaultSortOrder: 'ascend'\n },\n {\n title: \"Datasets\",\n dataIndex: [\"metrics\", \"datasetCount\"],\n key: \"datasets\",\n render: (text, record) =>\n get(record, \"metrics.datasetCount\", 1).toLocaleString(\"en-GB\"),\n },\n /* {\n title: \"Version\",\n dataIndex: [\"version\"],\n key: \"version\"\n }, */\n/* {\n title: \"\",\n dataIndex: [\"logo\"],\n key: \"logo\",\n render: (text, record) => (\n <DatasetlogoWithFallback\n auth={auth}\n datasetKey={datasetKey}\n datasetKey={record.key}\n style={{ maxHeight: \"32px\" }}\n size=\"SMALL\"\n />\n ),\n }, */\n /* {\n title: \"Taxonomic scope\",\n dataIndex: [\"taxonomicScope\"],\n key: \"taxonomicScope\",\n ellipsis: true,\n\n }, */\n {\n title: (\n <Tooltip\n placement=\"topLeft\"\n title={\"Count of all accepted families including extinct species\"}\n getPopupContainer={() => document.getElementById(\"familyCount\")}\n >\n <span id=\"familyCount\">Families</span>\n </Tooltip>\n ),\n dataIndex: [\"metrics\", \"taxaByRankCount\", \"family\"],\n key: \"species\",\n render: (text, record) => (\n <LinkTo\n to=\"search\"\n args={{\n ...baseFilters(record),\n rank: \"family\",\n status: [\"accepted\", \"provisionally accepted\"],\n }}\n >\n {getLivingSpecies(record, \"family\").toLocaleString(\"en-GB\")}\n </LinkTo>\n ),\n sorter: (a, b) => getLivingSpecies(a,\"family\") - getLivingSpecies(b,\"family\"),\n },\n {\n title: (\n <Tooltip\n placement=\"topLeft\"\n title={\"Count of all accepted genera including extinct species\"}\n getPopupContainer={() => document.getElementById(\"genusCount\")}\n >\n <span id=\"genusCount\">Genera</span>\n </Tooltip>\n ),\n dataIndex: [\"metrics\", \"taxaByRankCount\", \"genus\"],\n key: \"species\",\n render: (text, record) => (\n <LinkTo\n to=\"search\"\n args={{\n ...baseFilters(record),\n rank: \"genus\",\n status: [\"accepted\", \"provisionally accepted\"],\n }}\n >\n {getLivingSpecies(record, \"genus\").toLocaleString(\"en-GB\")}\n </LinkTo>\n ),\n sorter: (a, b) => getLivingSpecies(a,\"genus\") - getLivingSpecies(b,\"genus\"),\n },\n {\n title: (\n <Tooltip\n placement=\"topLeft\"\n title={\"Count of all accepted species including extinct species\"}\n getPopupContainer={() => document.getElementById(\"speciesCount\")}\n >\n <span id=\"speciesCount\">Species</span>\n </Tooltip>\n ),\n dataIndex: [\"metrics\", \"taxaByRankCount\", \"species\"],\n key: \"species\",\n render: (text, record) => (\n <LinkTo\n to=\"search\"\n args={{\n ...baseFilters(record),\n rank: \"species\",\n status: [\"accepted\", \"provisionally accepted\"],\n }}\n >\n {getLivingSpecies(record).toLocaleString(\"en-GB\")}\n </LinkTo>\n ),\n sorter: (a, b) => getLivingSpecies(a) - getLivingSpecies(b),\n },\n\n ].filter((clm) => (!hasPublishers ? clm.key !== \"datasets\" : true));\n\nclass SourceDatasetListPage extends React.Component {\n constructor(props) {\n super(props);\n setAuth(this.props.auth);\n this.state = {\n data: [],\n rank: null,\n hasPublishers: false,\n loading: false,\n showMerged: true,\n };\n }\n\n componentDidMount = () => {\n this.getData();\n this.getRank();\n };\n\n /* \n getDataOLD = () => {\n this.setState({ loading: true });\n const { datasetKey } = this.props;\n \n client(`${config.dataApi}dataset/${datasetKey}/source`)\n .then((res) => {\n return Promise.all(\n res.data.map((r) => \n client(\n `${config.dataApi}dataset/${datasetKey}/source/${r.key}/metrics`\n ).then((res) => ({...r, metrics: res.data}))\n \n )\n );\n \n })\n .then(data => {\n\n this.setState({\n loading: false,\n data: data,\n err: null\n });\n })\n .catch(err => {\n this.setState({ loading: false, error: err, data: [] });\n });\n }; */\n\n getData = () => {\n this.setState({ loading: true });\n const { datasetKey } = this.props;\n Promise.all([\n client(\n /* `${config.dataApi}dataset?limit=1000&contributesTo=${datasetKey}&sortBy=alias` */\n // `${config.dataApi}dataset/${datasetKey}/source?inclPublisherSources=false`\n `${config.dataApi}dataset/${datasetKey}/source?splitMerge=true`\n ),\n client(`${config.dataApi}dataset/${datasetKey}/sector/publisher?limit=1000`),\n ])\n .then(([res, publisherRes]) => {\n let columns = {};\n const datasetData = res.data || [];\n const publisherData = get(publisherRes, \"data.result\", []);\n if (publisherData.length > 0) {\n this.setState({ hasPublishers: true });\n }\n return Promise.all([\n ...publisherData.map((r) => {\n return this.getPublisherMetrics(datasetKey, r.id).then(\n (metrics) => {\n // columns = merge(columns, metrics);\n return {\n ...r,\n metrics: metrics,\n };\n }\n );\n }),\n ...datasetData.map((r) => {\n return this.getMetrics(datasetKey, r).then((metrics) => {\n columns = merge(columns, metrics);\n return {\n ...r,\n metrics: metrics,\n };\n });\n }),\n ]);\n })\n .then((data) => {\n this.setState({\n loading: false,\n data: data\n .filter((p) => !p?.id || (!!p?.id && p?.metrics?.sectorCount > 0))\n .sort((a, b) => {\n if (!!a.id && !b.id) {\n return a;\n } else if (!!b.id && !a.id) {\n return b;\n } else if (a.alias && b.alias) {\n return a.alias.localeCompare(b.alias) === 0\n ? a.merged === true\n ? 1\n : -1\n : a.alias.localeCompare(b.alias);\n } else {\n return 0;\n }\n }),\n err: null,\n });\n })\n .catch((err) => {\n this.setState({ loading: false, error: err, data: [] });\n });\n };\n\n getMetrics = (datasetKey, source) => {\n return client(\n `${config.dataApi}dataset/${datasetKey}/source/${source?.key}/metrics?merged=${source?.merged}`\n ).then((res) => res.data);\n };\n getPublisherMetrics = (datasetKey, publisherId) => {\n return client(\n `${config.dataApi}dataset/${datasetKey}/sector/publisher/${publisherId}/metrics`\n ).then((res) => res.data);\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 { data, loading, rank, hasPublishers, error } = this.state;\n const { datasetKey } = this.props;\n\n return (\n <div\n className=\"catalogue-of-life\"\n style={{\n background: \"#fff\",\n padding: 24,\n minHeight: 280,\n margin: \"16px 0\",\n }}\n >\n <Row>\n {error && (\n <Alert\n style={{ marginBottom: \"10px\" }}\n message={<ErrorMsg error={error} />}\n type=\"error\"\n />\n )}\n </Row>\n\n <Row>\n <Col span={12} style={{ marginBottom: \"8px\" }}>\n Include <MergedDataBadge />{\" \"}\n <Checkbox\n checked={this.state.showMerged}\n onChange={({ target: { checked } }) =>\n this.setState({\n showMerged: checked,\n })\n }\n />\n </Col>\n <Col span={12} style={{ textAlign: \"right\", marginBottom: \"8px\" }}>\n {/* {`Source datasets: ${data\n .filter((d) => {\n if (!this.state.showMerged && d?.merged) {\n return false;\n }\n if (!d?.metrics?.publisherKey) {\n return true;\n } else {\n return !(\n d?.metrics?.datasetCount === 0 ||\n d?.metrics?.usagesCount === 0\n );\n }\n })\n .length.toLocaleString(\"en-GB\")}`} */}\n {`Source datasets: ${data.reduce((acc, d) => {\n if (!this.state.showMerged && (d?.merged || !!d?.id)) {\n return acc;\n }\n if (!d?.metrics?.publisherKey) {\n return acc + 1;\n }\n if (d?.metrics?.publisherKey) {\n return acc + d?.metrics?.datasetCount;\n }\n },0).toLocaleString(\"en-GB\")}`}\n </Col>\n </Row>\n {!error && (\n <Table\n size=\"small\"\n columns={getColumns(datasetKey, this.props.auth, hasPublishers)}\n dataSource={data.filter((d) => {\n if (!this.state.showMerged && (d?.merged || !!d?.id)) {\n return false;\n }\n \n if (!d?.metrics?.publisherKey) {\n return true;\n } else {\n return !(\n d?.metrics?.datasetCount === 0 ||\n d?.metrics?.usagesCount === 0\n );\n }\n })}\n loading={loading}\n rowKey={(record) => `${record.key || record.id}-${record.merged}`}\n showSorterTooltip={false}\n pagination={false}\n expandedRowRender={(dataset) => (\n <div style={{ marginLeft: \"40px\" }}>\n \n <Row>\n <Col flex=\"auto\" style={{paddingLeft: \"8px\"}}><h3>{dataset?.title}</h3></Col>\n <Col>\n <DatasetlogoWithFallback\n auth={this.props.auth}\n datasetKey={datasetKey}\n sourceDatasetKey={dataset.key}\n style={{ maxHeight: \"64px\" }}\n size=\"MEDIUM\"\n />\n </Col>\n </Row>\n <MetricsPresentation\n metrics={dataset.metrics}\n dataset={dataset}\n rank={rank}\n />\n <div style={{ marginTop: \"12px\" }}>\n {dataset?.version && (\n <PresentationItem md={8} label={`Dataset version`}>\n {dataset.version}\n </PresentationItem>\n )}\n\n {dataset?.taxonomicScope && (\n <PresentationItem md={8} label={`Taxonomic scope`}>\n {dataset.taxonomicScope}\n </PresentationItem>\n )}\n </div>\n\n {dataset.citation && (\n <div style={{ marginTop: \"12px\" }}>\n <PresentationItem md={24} label={`Citation`}>\n <div\n dangerouslySetInnerHTML={{ __html: dataset.citation }}\n ></div>\n </PresentationItem>\n </div>\n )}\n </div>\n )}\n />\n )}\n </div>\n );\n }\n}\n\nexport default function SourceDatasetList({\n datasetKey,\n auth,\n ...routerProps\n}) {\n return (\n <RouterContext.Provider value={buildRouter(routerProps)}>\n <SourceDatasetListPage datasetKey={datasetKey} auth={auth} />\n </RouterContext.Provider>\n );\n}\n","import withDatasetKey from \"../withDatasetKey\";\nimport { withTheme } from \"../withTheme\";\nimport sourceDatasetList from \"../SourceDatasetList\";\n\nexport const SourceDatasetList = withTheme(withDatasetKey(sourceDatasetList));\n"],"names":["baseFilters","record","f","isArray","getLivingSpecies","rank","get","getColumns","datasetKey","auth","hasPublishers","text","jsxs","Fragment","XrGutter","jsx","LinkTo","a","b","Tooltip","clm","SourceDatasetListPage","React","props","__publicField","client","config","res","publisherRes","columns","datasetData","publisherData","r","metrics","merge","data","p","_a","err","source","publisherId","setAuth","loading","error","Row","Alert","ErrorMsg","Col","MergedDataBadge","Checkbox","checked","acc","d","_b","_c","Table","dataset","DatasetlogoWithFallback","MetricsPresentation","PresentationItem","SourceDatasetList","routerProps","RouterContext","buildRouter","withTheme","withDatasetKey","sourceDatasetList"],"mappings":"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"}
|