col-browser 2.6.0 → 2.6.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.
@@ -0,0 +1,103 @@
1
+ import { j as e } from "./jsx-runtime-BzflLqGi.js";
2
+ import b, { useState as c, useEffect as $, useRef as q } from "react";
3
+ import { Tag as x, Popover as H } from "antd";
4
+ import { c as k, L as V } from "./router-CssZk5qZ.js";
5
+ import { c as S } from "./config--bs_09I6.js";
6
+ import { get as n } from "lodash-es";
7
+ const m = {
8
+ 14: "The data was created by the homotypic grouping algorithm"
9
+ }, N = ({
10
+ style: j = {},
11
+ datasetKey: s,
12
+ sourceDatasetKey: y,
13
+ sourceId: C,
14
+ popoverPlacement: I,
15
+ verbatimSourceKey: o,
16
+ sectorKey: B,
17
+ createdBy: d
18
+ }) => {
19
+ const [p, L] = c(null), [v, h] = c(!1), [t, g] = c(null), [w, u] = c(!1), [l, T] = c(!1), a = y || (t == null ? void 0 : t.sourceDatasetKey), f = C || (t == null ? void 0 : t.sourceId);
20
+ $(() => {
21
+ l && o && !m[d] && A();
22
+ }, [o, l]), $(() => {
23
+ l && a && U(a);
24
+ }, [l, a]);
25
+ const U = (r) => {
26
+ h(!0), k(`${S.dataApi}dataset/${r}`).then((i) => {
27
+ h(!1), L(i.data);
28
+ }).catch((i) => {
29
+ console.error("Error fetching source dataset:", i), h(!1), L(null);
30
+ });
31
+ }, A = () => {
32
+ u(!0), g(null), k(
33
+ `${S.dataApi}dataset/${s}/verbatimsource/${o}`
34
+ ).then((r) => {
35
+ u(!1), g(r.data);
36
+ }).catch((r) => {
37
+ console.error("Error fetching verbatim record:", r), u(!1), g(null);
38
+ });
39
+ }, E = q(Math.random().toString(36).substring(2, 15)), M = ((t == null ? void 0 : t.sourceEntity) || "").toLowerCase().replace(/\s+/g, "") === "reference" ? "reference" : "taxon", R = f && a ? `https://www.checklistbank.org/dataset/${a}/${M}/${encodeURIComponent(
40
+ f
41
+ )}` : null, P = v || !!o && w, _ = /* @__PURE__ */ e.jsxs("div", { style: { minWidth: "300px" }, children: [
42
+ !!m[d] && /* @__PURE__ */ e.jsx("div", { children: m[d] }),
43
+ /* @__PURE__ */ e.jsxs("div", { children: [
44
+ /* @__PURE__ */ e.jsx("strong", { children: "Source:" }),
45
+ " ",
46
+ p ? /* @__PURE__ */ e.jsx(V, { to: "source", args: p.key, children: p.title }) : P ? "Loading..." : "—"
47
+ ] }),
48
+ R && /* @__PURE__ */ e.jsxs("div", { children: [
49
+ /* @__PURE__ */ e.jsx("strong", { children: "ID:" }),
50
+ " ",
51
+ /* @__PURE__ */ e.jsx("a", { href: R, target: "_blank", rel: "noreferrer", children: f })
52
+ ] }),
53
+ (t == null ? void 0 : t.issues) && t.issues.length > 0 && /* @__PURE__ */ e.jsxs("div", { children: [
54
+ /* @__PURE__ */ e.jsx("span", { children: "Issues: " }),
55
+ t.issues.map((r, i) => /* @__PURE__ */ e.jsx(x, { style: { margin: "2px" }, children: r }, i))
56
+ ] })
57
+ ] }), D = {
58
+ cursor: "pointer",
59
+ fontFamily: "monospace",
60
+ fontSize: "8px",
61
+ fontWeight: 900,
62
+ padding: "2px",
63
+ lineHeight: "8px",
64
+ verticalAlign: "middle",
65
+ marginRight: "2px",
66
+ ...j
67
+ };
68
+ return y || o ? /* @__PURE__ */ e.jsx("div", { style: { display: "inline" }, id: E.current, children: /* @__PURE__ */ e.jsx(
69
+ H,
70
+ {
71
+ getPopupContainer: () => document.getElementById(E.current),
72
+ content: _,
73
+ trigger: "click",
74
+ placement: I || "right",
75
+ onOpenChange: T,
76
+ children: /* @__PURE__ */ e.jsx(x, { color: "purple", style: D, children: "XR" })
77
+ }
78
+ ) }) : /* @__PURE__ */ e.jsx("div", { style: { display: "inline" }, children: /* @__PURE__ */ e.jsx(x, { color: "purple", style: { ...D, cursor: "default" }, children: "XR" }) });
79
+ };
80
+ class Q extends b.Component {
81
+ render() {
82
+ const { error: s } = this.props;
83
+ return /* @__PURE__ */ e.jsxs("div", { children: [
84
+ s.message && /* @__PURE__ */ e.jsx("h3", { children: s.message }),
85
+ n(s, "response.data.message") && /* @__PURE__ */ e.jsx("p", { children: n(s, "response.data.message") }),
86
+ n(s, "response.data.details") && /* @__PURE__ */ e.jsx("p", { children: n(s, "response.data.details") }),
87
+ n(s, "config.method") && /* @__PURE__ */ e.jsxs("p", { children: [
88
+ "HTTP method: ",
89
+ /* @__PURE__ */ e.jsx("strong", { children: n(s, "config.method").toUpperCase() })
90
+ ] }),
91
+ n(s, "response.request.responseURL") && /* @__PURE__ */ e.jsx("p", { children: /* @__PURE__ */ e.jsx("a", { href: n(s, "response.request.responseURL"), target: "_blank", children: n(s, "response.request.responseURL") }) }),
92
+ n(s, "config.data") && typeof n(s, "config.data") == "string" && /* @__PURE__ */ e.jsxs("div", { children: [
93
+ /* @__PURE__ */ e.jsx("h4", { children: "Body:" }),
94
+ /* @__PURE__ */ e.jsx("p", { children: n(s, "config.data") })
95
+ ] })
96
+ ] });
97
+ }
98
+ }
99
+ export {
100
+ Q as E,
101
+ N as M
102
+ };
103
+ //# sourceMappingURL=ErrorMsg-D5nALHuK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorMsg-D5nALHuK.js","sources":["../../src/components/MergedDataBadge.js","../../src/components/ErrorMsg.js"],"sourcesContent":["import React, { useEffect, useState, useRef } from \"react\";\nimport { Tag, Popover } from \"antd\";\nimport client from \"../api/client\";\nimport config from \"../config\";\nimport { LinkTo } from \"../router\";\n\nconst createdByAlgorithm = {\n 14: \"The data was created by the homotypic grouping algorithm\",\n};\n\nconst MergedDataBadge = ({\n style = {},\n datasetKey,\n sourceDatasetKey,\n sourceId,\n popoverPlacement,\n verbatimSourceKey,\n sectorKey,\n createdBy,\n}) => {\n const [sourceDataset, setSourceDataset] = useState(null);\n const [sourceDatasetLoading, setSourceDatasetLoading] = useState(false);\n const [verbatimRecord, setVerbatimRecord] = useState(null);\n const [verbatimRecordLoading, setVerbatimRecordLoading] = useState(false);\n const [open, setOpen] = useState(false);\n\n // A merged record's provenance can arrive two ways: explicit props, or — for\n // merged usages, whose own sourceDatasetKey is null — only on the verbatim\n // source record. Resolve both so the popover can always name the source\n // dataset and link the source id when one exists.\n const effectiveSourceDatasetKey =\n sourceDatasetKey || verbatimRecord?.sourceDatasetKey;\n const effectiveSourceId = sourceId || verbatimRecord?.sourceId;\n\n // Fetch the verbatim record (carries sourceDatasetKey / sourceId / entity).\n useEffect(() => {\n if (open && verbatimSourceKey && !createdByAlgorithm[createdBy]) {\n getVerbatimRecord();\n }\n }, [verbatimSourceKey, open]);\n\n // Fetch the source dataset once its key is known — from the prop, or from the\n // verbatim record once that has loaded.\n useEffect(() => {\n if (open && effectiveSourceDatasetKey) {\n getSourceDataset(effectiveSourceDatasetKey);\n }\n }, [open, effectiveSourceDatasetKey]);\n\n const getSourceDataset = (key) => {\n setSourceDatasetLoading(true);\n client(`${config.dataApi}dataset/${key}`)\n .then((res) => {\n setSourceDatasetLoading(false);\n setSourceDataset(res.data);\n })\n .catch((err) => {\n console.error(\"Error fetching source dataset:\", err);\n setSourceDatasetLoading(false);\n setSourceDataset(null);\n });\n };\n\n const getVerbatimRecord = () => {\n setVerbatimRecordLoading(true);\n setVerbatimRecord(null);\n client(\n `${config.dataApi}dataset/${datasetKey}/verbatimsource/${verbatimSourceKey}`\n )\n .then((res) => {\n setVerbatimRecordLoading(false);\n setVerbatimRecord(res.data);\n })\n .catch((err) => {\n console.error(\"Error fetching verbatim record:\", err);\n setVerbatimRecordLoading(false);\n setVerbatimRecord(null);\n });\n };\n\n const idRef = useRef(Math.random().toString(36).substring(2, 15));\n\n // ChecklistBank link to the source record. References live under /reference;\n // everything else (the common name-usage case) under /taxon.\n const clbEntity = (verbatimRecord?.sourceEntity || \"\")\n .toLowerCase()\n .replace(/\\s+/g, \"\");\n const clbPath = clbEntity === \"reference\" ? \"reference\" : \"taxon\";\n const sourceRecordHref =\n effectiveSourceId && effectiveSourceDatasetKey\n ? `https://www.checklistbank.org/dataset/${effectiveSourceDatasetKey}/${clbPath}/${encodeURIComponent(\n effectiveSourceId\n )}`\n : null;\n\n const loadingSource =\n sourceDatasetLoading || (!!verbatimSourceKey && verbatimRecordLoading);\n\n const content = (\n <div style={{ minWidth: \"300px\" }}>\n {!!createdByAlgorithm[createdBy] && (\n <div>{createdByAlgorithm[createdBy]}</div>\n )}\n <div>\n <strong>Source:</strong>{\" \"}\n {sourceDataset ? (\n <LinkTo to=\"source\" args={sourceDataset.key}>\n {sourceDataset.title}\n </LinkTo>\n ) : loadingSource ? (\n \"Loading...\"\n ) : (\n \"—\"\n )}\n </div>\n {sourceRecordHref && (\n <div>\n <strong>ID:</strong>{\" \"}\n <a href={sourceRecordHref} target=\"_blank\" rel=\"noreferrer\">\n {effectiveSourceId}\n </a>\n </div>\n )}\n {verbatimRecord?.issues && verbatimRecord.issues.length > 0 && (\n <div>\n <span>Issues: </span>\n {verbatimRecord.issues.map((issue, index) => (\n <Tag key={index} style={{ margin: \"2px\" }}>\n {issue}\n </Tag>\n ))}\n </div>\n )}\n </div>\n );\n\n const tagStyle = {\n cursor: \"pointer\",\n fontFamily: \"monospace\",\n fontSize: \"8px\",\n fontWeight: 900,\n padding: \"2px\",\n lineHeight: \"8px\",\n verticalAlign: \"middle\",\n marginRight: \"2px\",\n ...style,\n };\n\n return !!sourceDatasetKey || !!verbatimSourceKey ? (\n <div style={{ display: \"inline\" }} id={idRef.current}>\n <Popover\n getPopupContainer={() => document.getElementById(idRef.current)}\n content={content}\n trigger={\"click\"}\n placement={popoverPlacement || \"right\"}\n onOpenChange={setOpen}\n >\n <Tag color=\"purple\" style={tagStyle}>\n XR\n </Tag>\n </Popover>\n </div>\n ) : (\n <div style={{ display: \"inline\" }}>\n <Tag color=\"purple\" style={{ ...tagStyle, cursor: \"default\" }}>\n XR\n </Tag>\n </div>\n );\n};\n\nexport default MergedDataBadge;\n","import React from 'react';\nimport { get } from \"lodash-es\";\n\nclass ErrorMsg extends React.Component {\n\n render() {\n\n const { error } = this.props;\n return (\n <div>\n {error.message && <h3>\n {error.message}\n </h3>}\n {get(error, 'response.data.message') && <p>\n {get(error, 'response.data.message')}\n </p>}\n {get(error, 'response.data.details') && <p>\n {get(error, 'response.data.details')}\n </p>}\n {get(error, 'config.method') && <p>\n HTTP method: <strong>{get(error, 'config.method').toUpperCase()}</strong>\n </p>}\n {get(error, 'response.request.responseURL') &&\n <p><a href={get(error, 'response.request.responseURL')} target=\"_blank\">{get(error, 'response.request.responseURL')}</a></p>}\n {get(error, 'config.data') && typeof get(error, 'config.data') === 'string' && <div>\n <h4>Body:</h4>\n <p>\n {get(error, 'config.data')}\n </p></div>}\n </div>\n\n );\n }\n}\n\n\n\nexport default ErrorMsg;\n"],"names":["createdByAlgorithm","MergedDataBadge","style","datasetKey","sourceDatasetKey","sourceId","popoverPlacement","verbatimSourceKey","sectorKey","createdBy","sourceDataset","setSourceDataset","useState","sourceDatasetLoading","setSourceDatasetLoading","verbatimRecord","setVerbatimRecord","verbatimRecordLoading","setVerbatimRecordLoading","open","setOpen","effectiveSourceDatasetKey","effectiveSourceId","useEffect","getVerbatimRecord","getSourceDataset","key","client","config","res","err","idRef","useRef","clbPath","sourceRecordHref","loadingSource","content","jsxs","jsx","LinkTo","issue","index","Tag","tagStyle","Popover","ErrorMsg","React","error","get"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { j as t } from "./jsx-runtime-BzflLqGi.js";
2
2
  import "react";
3
- import { M as i } from "./MergedDataBadge-DK53L3R8.js";
3
+ import { M as i } from "./ErrorMsg-D5nALHuK.js";
4
4
  const m = ({ merged: r, style: o, children: s, ...a }) => r ? /* @__PURE__ */ t.jsxs("span", { style: { position: "relative", display: "inline-block", ...o }, children: [
5
5
  /* @__PURE__ */ t.jsx(
6
6
  i,
@@ -20,4 +20,4 @@ const m = ({ merged: r, style: o, children: s, ...a }) => r ? /* @__PURE__ */ t.
20
20
  export {
21
21
  m as X
22
22
  };
23
- //# sourceMappingURL=XrGutter-COJhHpia.js.map
23
+ //# sourceMappingURL=XrGutter-nBDDl_Lq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"XrGutter-COJhHpia.js","sources":["../../src/components/XrGutter.js"],"sourcesContent":["import React from \"react\";\nimport MergedDataBadge from \"./MergedDataBadge\";\n\n// Renders the XR (merged-data) badge in the left gutter of a line or table\n// cell. The badge is absolutely positioned just left of the content, so it\n// takes no flow width — the content stays at the same position whether or not\n// the badge is shown. This keeps list/table rows aligned (mirroring how the\n// taxon title places its XR badge) instead of appending the badge after the\n// name or wedging it mid-line.\n//\n// When `merged` is falsy the children render unchanged (no wrapper). Any extra\n// props are forwarded to MergedDataBadge (datasetKey, verbatimSourceKey,\n// sourceDatasetKey, sourceId, createdBy, …).\nconst XrGutter = ({ merged, style, children, ...badgeProps }) =>\n merged ? (\n <span style={{ position: \"relative\", display: \"inline-block\", ...style }}>\n <MergedDataBadge\n {...badgeProps}\n style={{\n position: \"absolute\",\n right: \"100%\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n marginRight: \"4px\",\n }}\n />\n {children}\n </span>\n ) : (\n <>{children}</>\n );\n\nexport default XrGutter;\n"],"names":["XrGutter","merged","style","children","badgeProps","jsx","MergedDataBadge"],"mappings":";;;AAaA,MAAMA,IAAW,CAAC,EAAE,QAAAC,GAAQ,OAAAC,GAAO,UAAAC,GAAU,GAAGC,QAC9CH,2BACG,QAAA,EAAK,OAAO,EAAE,UAAU,YAAY,SAAS,gBAAgB,GAAGC,KAC/D,UAAA;AAAA,EAAAG,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,OAAO;AAAA,QACL,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAK;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA,MAAA;AAAA,IACf;AAAA,EAAA;AAAA,EAEDD;AAAA,EAAA,CACH,wCAEG,UAAAA,EAAA,CAAS;"}
1
+ {"version":3,"file":"XrGutter-nBDDl_Lq.js","sources":["../../src/components/XrGutter.js"],"sourcesContent":["import React from \"react\";\nimport MergedDataBadge from \"./MergedDataBadge\";\n\n// Renders the XR (merged-data) badge in the left gutter of a line or table\n// cell. The badge is absolutely positioned just left of the content, so it\n// takes no flow width — the content stays at the same position whether or not\n// the badge is shown. This keeps list/table rows aligned (mirroring how the\n// taxon title places its XR badge) instead of appending the badge after the\n// name or wedging it mid-line.\n//\n// When `merged` is falsy the children render unchanged (no wrapper). Any extra\n// props are forwarded to MergedDataBadge (datasetKey, verbatimSourceKey,\n// sourceDatasetKey, sourceId, createdBy, …).\nconst XrGutter = ({ merged, style, children, ...badgeProps }) =>\n merged ? (\n <span style={{ position: \"relative\", display: \"inline-block\", ...style }}>\n <MergedDataBadge\n {...badgeProps}\n style={{\n position: \"absolute\",\n right: \"100%\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n marginRight: \"4px\",\n }}\n />\n {children}\n </span>\n ) : (\n <>{children}</>\n );\n\nexport default XrGutter;\n"],"names":["XrGutter","merged","style","children","badgeProps","jsx","MergedDataBadge"],"mappings":";;;AAaA,MAAMA,IAAW,CAAC,EAAE,QAAAC,GAAQ,OAAAC,GAAO,UAAAC,GAAU,GAAGC,QAC9CH,2BACG,QAAA,EAAK,OAAO,EAAE,UAAU,YAAY,SAAS,gBAAgB,GAAGC,KAC/D,UAAA;AAAA,EAAAG,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGF;AAAA,MACJ,OAAO;AAAA,QACL,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAK;AAAA,QACL,WAAW;AAAA,QACX,aAAa;AAAA,MAAA;AAAA,IACf;AAAA,EAAA;AAAA,EAEDD;AAAA,EAAA,CACH,wCAEG,UAAAA,EAAA,CAAS;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataset-BZpjo3Yq.js","sources":["../../src/api/dataset.js"],"sourcesContent":["import client from \"./client\";\nimport config from \"../config\";\n\nconst reflect = (p) =>\n p.then(\n (v) => v.data,\n (e) => null\n );\n\n// Bulk lookup using the API's `/source/simple?id=…&id=…` endpoint. One\n// HTTP request resolves all ids in the batch. The endpoint returns a\n// lightweight dataset object per id; results may come back in any order,\n// so we reorder by `key` to match what DataLoader expects (same length\n// and same order as the requested ids).\n//\n// Tolerates any failure mode (404, network error, malformed response, …)\n// by resolving every id in the failing batch to null. Returning the\n// expected-length array is critical — DataLoader rejects every pending\n// load() if the batch function rejects or returns the wrong length, and\n// the per-id load() rejections would in turn reject the Promise.all in\n// TaxonSources and leave the popover spinner stuck.\nexport const getDatasetsBatch = (ids, datasetKey) => {\n if (!ids?.length) return Promise.resolve([]);\n const nullsForAll = () => ids.map(() => null);\n const params = ids.map((id) => `id=${encodeURIComponent(id)}`).join(\"&\");\n return client(`${config.dataApi}dataset/${datasetKey}/source/simple?${params}`)\n .then((res) => {\n try {\n const byKey = new Map();\n const arr = Array.isArray(res?.data) ? res.data : [];\n arr.forEach((d) => {\n if (d && d.key != null) byKey.set(d.key, d);\n });\n return ids.map((id) => byKey.get(id) ?? byKey.get(Number(id)) ?? null);\n } catch (parseErr) {\n return nullsForAll();\n }\n })\n .catch(() => nullsForAll());\n};\n\nexport const getPublishersBatch = (ids, datasetKey) => {\n return Promise.all(\n ids.map((i) =>\n reflect(client(`${config.dataApi}dataset/${datasetKey}/sector/publisher/${i}`))\n )\n );\n};\n\nexport const getCatalogues = () => {\n return client(`${config.dataApi}dataset/catalogues`).then(({ data }) =>\n getDatasetsBatch(data)\n );\n};\n\nexport const getDataset = (datasetKey) =>\n client(`${config.dataApi}dataset/${datasetKey}`);\n\n// Lightweight dataset descriptor — includes `origin`, `title`, `version`,\n// `key`, etc. Used by Search to gate filter UI on the dataset's origin.\n// TODO: switch to `/dataset/{key}/simple` once that endpoint deploys.\n// The full /dataset/{key} response is a superset, so it works today.\nexport const getDatasetSimple = (datasetKey) =>\n client(`${config.dataApi}dataset/${datasetKey}`);\n"],"names":["reflect","p","v","getDatasetsBatch","ids","datasetKey","nullsForAll","params","id","client","config","res","byKey","d","getPublishersBatch","i","getDataset","getDatasetSimple"],"mappings":";;AAGA,MAAMA,IAAU,CAACC,MACfA,EAAE;AAAA,EACA,CAACC,MAAMA,EAAE;AAAA,EACT,CAAC,MAAM;AACT,GAcWC,IAAmB,CAACC,GAAKC,MAAe;AACnD,MAAI,EAACD,KAAA,QAAAA,EAAK,gBAAe,QAAQ,QAAQ,CAAA,CAAE;AAC3C,QAAME,IAAc,MAAMF,EAAI,IAAI,MAAM,IAAI,GACtCG,IAASH,EAAI,IAAI,CAACI,MAAO,MAAM,mBAAmBA,CAAE,CAAC,EAAE,EAAE,KAAK,GAAG;AACvE,SAAOC,EAAO,GAAGC,EAAO,OAAO,WAAWL,CAAU,kBAAkBE,CAAM,EAAE,EAC3E,KAAK,CAACI,MAAQ;AACb,QAAI;AACF,YAAMC,wBAAY,IAAA;AAElB,cADY,MAAM,QAAQD,KAAA,gBAAAA,EAAK,IAAI,IAAIA,EAAI,OAAO,CAAA,GAC9C,QAAQ,CAACE,MAAM;AACjB,QAAIA,KAAKA,EAAE,OAAO,UAAY,IAAIA,EAAE,KAAKA,CAAC;AAAA,MAC5C,CAAC,GACMT,EAAI,IAAI,CAACI,MAAOI,EAAM,IAAIJ,CAAE,KAAKI,EAAM,IAAI,OAAOJ,CAAE,CAAC,KAAK,IAAI;AAAA,IACvE,QAAmB;AACjB,aAAOF,EAAA;AAAA,IACT;AAAA,EACF,CAAC,EACA,MAAM,MAAMA,GAAa;AAC9B,GAEaQ,IAAqB,CAACV,GAAKC,MAC/B,QAAQ;AAAA,EACbD,EAAI;AAAA,IAAI,CAACW,MACPf,EAAQS,EAAO,GAAGC,EAAO,OAAO,WAAWL,CAAU,qBAAqBU,CAAC,EAAE,CAAC;AAAA,EAAA;AAChF,GAUSC,IAAa,CAACX,MACzBI,EAAO,GAAGC,EAAO,OAAO,WAAWL,CAAU,EAAE,GAMpCY,IAAmB,CAACZ,MAC/BI,EAAO,GAAGC,EAAO,OAAO,WAAWL,CAAU,EAAE;"}
1
+ {"version":3,"file":"dataset-BZpjo3Yq.js","sources":["../../src/api/dataset.js"],"sourcesContent":["import client from \"./client\";\nimport config from \"../config\";\n\nconst reflect = (p) =>\n p.then(\n (v) => v.data,\n (e) => null\n );\n\n// Bulk lookup using the API's `/source/simple?id=…&id=…` endpoint. One\n// HTTP request resolves all ids in the batch. The endpoint returns a\n// lightweight dataset object per id; results may come back in any order,\n// so we reorder by `key` to match what DataLoader expects (same length\n// and same order as the requested ids).\n//\n// Tolerates any failure mode (404, network error, malformed response, …)\n// by resolving every id in the failing batch to null. Returning the\n// expected-length array is critical — DataLoader rejects every pending\n// load() if the batch function rejects or returns the wrong length, and\n// the per-id load() rejections would in turn reject the Promise.all in\n// TaxonSources and leave the popover spinner stuck.\nexport const getDatasetsBatch = (ids, datasetKey) => {\n if (!ids?.length) return Promise.resolve([]);\n const nullsForAll = () => ids.map(() => null);\n const params = ids.map((id) => `id=${encodeURIComponent(id)}`).join(\"&\");\n return client(`${config.dataApi}dataset/${datasetKey}/source/simple?${params}`)\n .then((res) => {\n try {\n const byKey = new Map();\n const arr = Array.isArray(res?.data) ? res.data : [];\n arr.forEach((d) => {\n if (d && d.key != null) byKey.set(d.key, d);\n });\n return ids.map((id) => byKey.get(id) ?? byKey.get(Number(id)) ?? null);\n } catch (parseErr) {\n return nullsForAll();\n }\n })\n .catch(() => nullsForAll());\n};\n\nexport const getPublishersBatch = (ids, datasetKey) => {\n return Promise.all(\n ids.map((i) =>\n reflect(client(`${config.dataApi}dataset/${datasetKey}/sector/publisher/${i}`))\n )\n );\n};\n\nexport const getDataset = (datasetKey) =>\n client(`${config.dataApi}dataset/${datasetKey}`);\n\n// Lightweight dataset descriptor — includes `origin`, `title`, `version`,\n// `key`, etc. Used by Search to gate filter UI on the dataset's origin.\n// TODO: switch to `/dataset/{key}/simple` once that endpoint deploys.\n// The full /dataset/{key} response is a superset, so it works today.\nexport const getDatasetSimple = (datasetKey) =>\n client(`${config.dataApi}dataset/${datasetKey}`);\n"],"names":["reflect","p","v","getDatasetsBatch","ids","datasetKey","nullsForAll","params","id","client","config","res","byKey","d","getPublishersBatch","i","getDataset","getDatasetSimple"],"mappings":";;AAGA,MAAMA,IAAU,CAACC,MACfA,EAAE;AAAA,EACA,CAACC,MAAMA,EAAE;AAAA,EACT,CAAC,MAAM;AACT,GAcWC,IAAmB,CAACC,GAAKC,MAAe;AACnD,MAAI,EAACD,KAAA,QAAAA,EAAK,gBAAe,QAAQ,QAAQ,CAAA,CAAE;AAC3C,QAAME,IAAc,MAAMF,EAAI,IAAI,MAAM,IAAI,GACtCG,IAASH,EAAI,IAAI,CAACI,MAAO,MAAM,mBAAmBA,CAAE,CAAC,EAAE,EAAE,KAAK,GAAG;AACvE,SAAOC,EAAO,GAAGC,EAAO,OAAO,WAAWL,CAAU,kBAAkBE,CAAM,EAAE,EAC3E,KAAK,CAACI,MAAQ;AACb,QAAI;AACF,YAAMC,wBAAY,IAAA;AAElB,cADY,MAAM,QAAQD,KAAA,gBAAAA,EAAK,IAAI,IAAIA,EAAI,OAAO,CAAA,GAC9C,QAAQ,CAACE,MAAM;AACjB,QAAIA,KAAKA,EAAE,OAAO,UAAY,IAAIA,EAAE,KAAKA,CAAC;AAAA,MAC5C,CAAC,GACMT,EAAI,IAAI,CAACI,MAAOI,EAAM,IAAIJ,CAAE,KAAKI,EAAM,IAAI,OAAOJ,CAAE,CAAC,KAAK,IAAI;AAAA,IACvE,QAAmB;AACjB,aAAOF,EAAA;AAAA,IACT;AAAA,EACF,CAAC,EACA,MAAM,MAAMA,GAAa;AAC9B,GAEaQ,IAAqB,CAACV,GAAKC,MAC/B,QAAQ;AAAA,EACbD,EAAI;AAAA,IAAI,CAACW,MACPf,EAAQS,EAAO,GAAGC,EAAO,OAAO,WAAWL,CAAU,qBAAqBU,CAAC,EAAE,CAAC;AAAA,EAAA;AAChF,GAISC,IAAa,CAACX,MACzBI,EAAO,GAAGC,EAAO,OAAO,WAAWL,CAAU,EAAE,GAMpCY,IAAmB,CAACZ,MAC/BI,EAAO,GAAGC,EAAO,OAAO,WAAWL,CAAU,EAAE;"}
@@ -0,0 +1,24 @@
1
+ import { c as n } from "./router-CssZk5qZ.js";
2
+ import { c as r } from "./config--bs_09I6.js";
3
+ const i = () => n(`${r.dataApi}vocab/country`).then(
4
+ (a) => a.data
5
+ ), p = () => n(`${r.dataApi}vocab/taxgroup`).then(
6
+ (a) => a.data
7
+ ), e = /* @__PURE__ */ new Map(), s = (a, o) => {
8
+ const t = `${r.dataApi}vocab/${a}`;
9
+ return e.has(t) || e.set(
10
+ t,
11
+ n(t).then((c) => o(c.data)).catch((c) => {
12
+ throw e.delete(t), c;
13
+ })
14
+ ), e.get(t);
15
+ }, h = () => s(
16
+ "nomstatus",
17
+ (a) => a.reduce((o, t) => (o[t.name] = t, o), {})
18
+ );
19
+ export {
20
+ h as a,
21
+ p as b,
22
+ i as g
23
+ };
24
+ //# sourceMappingURL=enumeration-CsrJrIIR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enumeration-CV8i_q_O.js","sources":["../../src/api/enumeration.js"],"sourcesContent":["// import axiosInstance from './util/axiosInstance';\nimport client from \"./client\";\nimport config from \"../config\";\n\nexport const getFrequency = () => {\n return client(`${config.dataApi}vocab/frequency`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getDatasetType = () => {\n return client(`${config.dataApi}vocab/datasettype`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getDataFormatType = () => {\n return client(`${config.dataApi}vocab/dataformat`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getDatasetOrigin = () => {\n return client(`${config.dataApi}vocab/datasetorigin`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getRank = () => {\n return client(`${config.dataApi}vocab/rank`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getTaxonomicStatus = () => {\n return client(`${config.dataApi}vocab/taxonomicstatus`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getIssue = () => {\n return client(`${config.dataApi}vocab/issue`).then(res =>\n res.data\n );\n};\n\nexport const getNameType = () => {\n return client(`${config.dataApi}vocab/nametype`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getNameField = () => {\n return client(`${config.dataApi}vocab/namefield`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getNomStatus = () => {\n return client(`${config.dataApi}vocab/nomstatus`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getLicense = () => {\n return client(`${config.dataApi}vocab/license`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getNomCode = () => {\n return client(`${config.dataApi}vocab/nomcode`).then(res =>\n res.data\n );\n};\n\nexport const getImportState = () => {\n return client(`${config.dataApi}vocab/importstate`).then(res =>\n res.data\n );\n};\n\nexport const getLifezones = () => {\n return client(`${config.dataApi}vocab/lifezone`).then(res =>\n res.data\n );\n};\n\nexport const getSectorImportState = () => {\n return client(`${config.dataApi}vocab/sectorimport$state`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getCountries = () => {\n return client(`${config.dataApi}vocab/country`).then(res =>\n res.data\n );\n};\n\nexport const getTaxGroup = () => {\n return client(`${config.dataApi}vocab/taxgroup`).then(res =>\n res.data\n );\n};\n\n\n\n\n"],"names":["getCountries","client","config","res","getTaxGroup"],"mappings":";;AA8FO,MAAMA,IAAe,MACnBC,EAAO,GAAGC,EAAO,OAAO,eAAe,EAAE;AAAA,EAAK,OACnDC,EAAI;AAAA,GAIKC,IAAc,MAClBH,EAAO,GAAGC,EAAO,OAAO,gBAAgB,EAAE;AAAA,EAAK,OACpDC,EAAI;AAAA;"}
1
+ {"version":3,"file":"enumeration-CsrJrIIR.js","sources":["../../src/api/enumeration.js"],"sourcesContent":["// import axiosInstance from './util/axiosInstance';\nimport client from \"./client\";\nimport config from \"../config\";\n\nexport const getFrequency = () => {\n return client(`${config.dataApi}vocab/frequency`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getDatasetType = () => {\n return client(`${config.dataApi}vocab/datasettype`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getDataFormatType = () => {\n return client(`${config.dataApi}vocab/dataformat`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getDatasetOrigin = () => {\n return client(`${config.dataApi}vocab/datasetorigin`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getRank = () => {\n return client(`${config.dataApi}vocab/rank`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getTaxonomicStatus = () => {\n return client(`${config.dataApi}vocab/taxonomicstatus`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getIssue = () => {\n return client(`${config.dataApi}vocab/issue`).then(res =>\n res.data\n );\n};\n\nexport const getNameType = () => {\n return client(`${config.dataApi}vocab/nametype`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getNameField = () => {\n return client(`${config.dataApi}vocab/namefield`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getNomStatus = () => {\n return client(`${config.dataApi}vocab/nomstatus`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getLicense = () => {\n return client(`${config.dataApi}vocab/license`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getNomCode = () => {\n return client(`${config.dataApi}vocab/nomcode`).then(res =>\n res.data\n );\n};\n\nexport const getImportState = () => {\n return client(`${config.dataApi}vocab/importstate`).then(res =>\n res.data\n );\n};\n\nexport const getLifezones = () => {\n return client(`${config.dataApi}vocab/lifezone`).then(res =>\n res.data\n );\n};\n\nexport const getSectorImportState = () => {\n return client(`${config.dataApi}vocab/sectorimport$state`).then(res =>\n res.data.map(e => e.name)\n );\n};\n\nexport const getCountries = () => {\n return client(`${config.dataApi}vocab/country`).then(res =>\n res.data\n );\n};\n\nexport const getTaxGroup = () => {\n return client(`${config.dataApi}vocab/taxgroup`).then(res =>\n res.data\n );\n};\n\n\n\n\n\n// Vocabularies are static for the lifetime of a deployment, so every caller can\n// share a single in-flight/settled promise instead of refetching. Keyed by the\n// resolved URL so a runtime configure({ dataApi }) switch loads the new API's\n// vocabulary rather than serving the old one from cache.\nconst vocabCache = new Map();\n\nconst cachedVocab = (path, transform) => {\n const url = `${config.dataApi}vocab/${path}`;\n if (!vocabCache.has(url)) {\n vocabCache.set(\n url,\n client(url)\n .then((res) => transform(res.data))\n .catch((err) => {\n // Drop the rejected promise so a later render can retry.\n vocabCache.delete(url);\n throw err;\n })\n );\n }\n return vocabCache.get(url);\n};\n\n/**\n * The full nomenclatural status vocabulary as a map keyed by status name, e.g.\n * { acceptable: { name: \"acceptable\", botanical: \"nomen legitimum\",\n * zoological: \"potentially valid\", … }, … }\n * Shared and cached; feed it to `nomStatusLabel` to resolve a code-specific label.\n */\nexport const getNomStatusVocab = () =>\n cachedVocab(\"nomstatus\", (data) =>\n data.reduce((a, c) => ((a[c.name] = c), a), {})\n );\n"],"names":["getCountries","client","config","res","getTaxGroup","vocabCache","cachedVocab","path","transform","url","err","getNomStatusVocab","data","a","c"],"mappings":";;AA8FO,MAAMA,IAAe,MACnBC,EAAO,GAAGC,EAAO,OAAO,eAAe,EAAE;AAAA,EAAK,OACnDC,EAAI;AAAA,GAIKC,IAAc,MAClBH,EAAO,GAAGC,EAAO,OAAO,gBAAgB,EAAE;AAAA,EAAK,OACpDC,EAAI;AAAA,GAYFE,wBAAiB,IAAA,GAEjBC,IAAc,CAACC,GAAMC,MAAc;AACvC,QAAMC,IAAM,GAAGP,EAAO,OAAO,SAASK,CAAI;AAC1C,SAAKF,EAAW,IAAII,CAAG,KACrBJ,EAAW;AAAA,IACTI;AAAA,IACAR,EAAOQ,CAAG,EACP,KAAK,CAACN,MAAQK,EAAUL,EAAI,IAAI,CAAC,EACjC,MAAM,CAACO,MAAQ;AAEd,YAAAL,EAAW,OAAOI,CAAG,GACfC;AAAA,IACR,CAAC;AAAA,EAAA,GAGAL,EAAW,IAAII,CAAG;AAC3B,GAQaE,IAAoB,MAC/BL;AAAA,EAAY;AAAA,EAAa,CAACM,MACxBA,EAAK,OAAO,CAACC,GAAGC,OAAQD,EAAEC,EAAE,IAAI,IAAIA,GAAID,IAAI,CAAA,CAAE;AAChD;"}
package/es/search.js CHANGED
@@ -8,16 +8,16 @@ import * as C from "react";
8
8
  import f from "react";
9
9
  import { L as S, c as j, s as pt, R as mt, b as gt } from "./chunks/router-CssZk5qZ.js";
10
10
  import { a as ft } from "./chunks/dataset-BZpjo3Yq.js";
11
- import { a as xt } from "./chunks/enumeration-CV8i_q_O.js";
11
+ import { b as xt } from "./chunks/enumeration-CsrJrIIR.js";
12
12
  import { r as St, w as vt } from "./chunks/storage-BgdCo9fV.js";
13
13
  import { Input as G, Form as R, Select as k, Row as x, Col as g, AutoComplete as K, Radio as yt, Alert as jt, Button as I, Table as bt } from "antd";
14
14
  import { c as b } from "./chunks/config--bs_09I6.js";
15
15
  import Ct from "query-string";
16
16
  import { isArray as O, startCase as m, snakeCase as M, get as u, initial as z, debounce as At, isEqual as Dt, isEmpty as Tt, merge as $t, forEach as Et } from "lodash-es";
17
- import { E as Ot } from "./chunks/ErrorMsg-K8k5PPTp.js";
17
+ import { E as Ot } from "./chunks/ErrorMsg-D5nALHuK.js";
18
18
  import { C as F, N as wt } from "./chunks/DatasetCitation-Cep2dces.js";
19
19
  import Nt from "react-highlight-words";
20
- import { X as Rt } from "./chunks/XrGutter-COJhHpia.js";
20
+ import { X as Rt } from "./chunks/XrGutter-nBDDl_Lq.js";
21
21
  import { I as P } from "./chunks/AntdIcon-B1nMlqyh.js";
22
22
  var kt = { 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" };
23
23
  function w() {