synapse-react-client 4.0.10 → 4.0.11
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/dist/SWC.index.js +1 -1
- package/dist/assets/icons/CloudWarning.d.ts +5 -0
- package/dist/assets/icons/CloudWarning.d.ts.map +1 -0
- package/dist/assets/icons/CloudWarning.js +47 -0
- package/dist/assets/icons/CloudWarning.js.map +1 -0
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.d.ts.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js +143 -140
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js +66 -55
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js +1 -1
- package/dist/components/DataGrid/columns/AutocompleteMultipleEnumColumn.js.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.d.ts +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js +27 -24
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.d.ts +8 -0
- package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js +47 -44
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/getEmptyValue.d.ts +2 -0
- package/dist/components/DataGrid/utils/getEmptyValue.d.ts.map +1 -0
- package/dist/components/DataGrid/utils/getEmptyValue.js +8 -0
- package/dist/components/DataGrid/utils/getEmptyValue.js.map +1 -0
- package/dist/components/DataGrid/utils/modelColsToGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js +2 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.d.ts +32 -0
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.d.ts.map +1 -0
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.js +22 -0
- package/dist/components/DataGrid/utils/schemaAwarePasteValue.js.map +1 -0
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.css +1 -0
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +199 -132
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.js +22 -0
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.js.map +1 -0
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.scss +170 -0
- package/dist/components/EntityDownloadButton/EntityDownloadButton.d.ts.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -0
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.d.ts.map +1 -1
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js +15 -14
- package/dist/components/EntityViewScopeEditor/EntityViewMaskEditor.js.map +1 -1
- package/dist/components/Forum/DiscussionReply.d.ts +1 -0
- package/dist/components/Forum/DiscussionReply.d.ts.map +1 -1
- package/dist/components/Forum/DiscussionReply.js +19 -19
- package/dist/components/Forum/DiscussionReply.js.map +1 -1
- package/dist/components/Forum/DiscussionThread.d.ts +1 -0
- package/dist/components/Forum/DiscussionThread.d.ts.map +1 -1
- package/dist/components/Forum/DiscussionThread.js +73 -72
- package/dist/components/Forum/DiscussionThread.js.map +1 -1
- package/dist/components/GenericCard/BioregistryRules.d.ts.map +1 -1
- package/dist/components/GenericCard/BioregistryRules.js +7 -3
- package/dist/components/GenericCard/BioregistryRules.js.map +1 -1
- package/dist/components/IconSvg/IconSvg.d.ts.map +1 -1
- package/dist/components/IconSvg/IconSvg.js +2 -1
- package/dist/components/IconSvg/IconSvg.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.d.ts.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +157 -148
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.d.ts.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js +20 -19
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.d.ts +1 -0
- package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
- package/dist/synapse-queries/KeyFactory.js +3 -0
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.d.ts +1 -0
- package/dist/synapse-queries/forum/useThread.d.ts.map +1 -1
- package/dist/synapse-queries/forum/useThread.js +19 -12
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.d.ts +1 -0
- package/dist/utils/APIConstants.d.ts.map +1 -1
- package/dist/utils/APIConstants.js +2 -2
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.d.ts.map +1 -1
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js +7 -4
- package/dist/utils/AppUtils/session/ApplicationSessionManager.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.d.ts.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.js +15 -4
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/package.json +4 -4
|
@@ -3,21 +3,23 @@ import { autocompleteColumn as t } from "../columns/AutocompleteColumn.js";
|
|
|
3
3
|
import { autocompleteMultipleEnumColumn as n } from "../columns/AutocompleteMultipleEnumColumn.js";
|
|
4
4
|
import { calculateDefaultColumnWidth as r } from "./calculateColumnWidth.js";
|
|
5
5
|
import { ColumnHeaderWithTooltip as i } from "../components/ColumnHeaderWithTooltip.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { c as u } from "react/
|
|
10
|
-
import {
|
|
6
|
+
import { getEmptyValue as a } from "./getEmptyValue.js";
|
|
7
|
+
import { wrapPasteValueWithSchemaCoercion as o } from "./schemaAwarePasteValue.js";
|
|
8
|
+
import { Tooltip as s } from "@mui/material";
|
|
9
|
+
import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
10
|
+
import { SmartToyTwoTone as d } from "@mui/icons-material";
|
|
11
|
+
import { c as f } from "react/compiler-runtime";
|
|
12
|
+
import { createTextColumn as p, floatColumn as m, keyColumn as h } from "@sage-bionetworks/react-datasheet-grid";
|
|
11
13
|
//#region src/components/DataGrid/utils/columnFactory.tsx
|
|
12
|
-
function
|
|
14
|
+
function g(e, t) {
|
|
13
15
|
function n(n) {
|
|
14
|
-
let r =
|
|
15
|
-
r[0] === n ?
|
|
16
|
+
let r = f(13), i = n.rowData.__cellChangeInfo?.[t], a = i?.category === "own-agent" || i?.category === "other-agent", o;
|
|
17
|
+
r[0] === n ? o = r[1] : (o = /* @__PURE__ */ l(e, { ...n }), r[0] = n, r[1] = o);
|
|
16
18
|
let p;
|
|
17
|
-
r[2] !== i || r[3] !==
|
|
19
|
+
r[2] !== i || r[3] !== a ? (p = i && !a && /* @__PURE__ */ l(s, {
|
|
18
20
|
title: i.tooltipText,
|
|
19
21
|
placement: "top-end",
|
|
20
|
-
children: /* @__PURE__ */
|
|
22
|
+
children: /* @__PURE__ */ l("div", { style: {
|
|
21
23
|
position: "absolute",
|
|
22
24
|
top: 0,
|
|
23
25
|
right: 0,
|
|
@@ -26,12 +28,12 @@ function m(e, t) {
|
|
|
26
28
|
zIndex: 21,
|
|
27
29
|
pointerEvents: "auto"
|
|
28
30
|
} })
|
|
29
|
-
}), r[2] = i, r[3] =
|
|
31
|
+
}), r[2] = i, r[3] = a, r[4] = p) : p = r[4];
|
|
30
32
|
let m;
|
|
31
|
-
r[5] !== i || r[6] !==
|
|
33
|
+
r[5] !== i || r[6] !== a || r[7] !== n.focus ? (m = a && !n.focus && /* @__PURE__ */ l(s, {
|
|
32
34
|
title: i.tooltipText,
|
|
33
35
|
placement: "left",
|
|
34
|
-
children: /* @__PURE__ */
|
|
36
|
+
children: /* @__PURE__ */ l(d, { sx: {
|
|
35
37
|
fontSize: "1em",
|
|
36
38
|
alignSelf: "center",
|
|
37
39
|
flexShrink: 0,
|
|
@@ -41,73 +43,74 @@ function m(e, t) {
|
|
|
41
43
|
color: "grey.400",
|
|
42
44
|
backgroundColor: "transparent"
|
|
43
45
|
} })
|
|
44
|
-
}), r[5] = i, r[6] =
|
|
46
|
+
}), r[5] = i, r[6] = a, r[7] = n.focus, r[8] = m) : m = r[8];
|
|
45
47
|
let h;
|
|
46
|
-
return r[9] !==
|
|
47
|
-
|
|
48
|
+
return r[9] !== o || r[10] !== p || r[11] !== m ? (h = /* @__PURE__ */ u(c, { children: [
|
|
49
|
+
o,
|
|
48
50
|
p,
|
|
49
51
|
m
|
|
50
|
-
] }), r[9] =
|
|
52
|
+
] }), r[9] = o, r[10] = p, r[11] = m, r[12] = h) : h = r[12], h;
|
|
51
53
|
}
|
|
52
54
|
return n.displayName = `CellWithTooltip(${t})`, n;
|
|
53
55
|
}
|
|
54
|
-
function
|
|
56
|
+
function _(e) {
|
|
55
57
|
return e ? "header-cell-required" : "header-cell";
|
|
56
58
|
}
|
|
57
|
-
function
|
|
59
|
+
function v(e, t) {
|
|
58
60
|
return ({ rowData: n }) => ({
|
|
59
61
|
...n,
|
|
60
|
-
[e]: t
|
|
62
|
+
[e]: a(t)
|
|
61
63
|
});
|
|
62
64
|
}
|
|
63
|
-
function
|
|
65
|
+
function y(e) {
|
|
64
66
|
return (t) => {
|
|
65
67
|
let n = t.trim();
|
|
66
|
-
return n === "" ? e
|
|
68
|
+
return n === "" ? a(e) : n;
|
|
67
69
|
};
|
|
68
70
|
}
|
|
69
|
-
function
|
|
71
|
+
function b(e, t) {
|
|
70
72
|
let n = {
|
|
71
73
|
showPinIcon: e.showPinIcon,
|
|
72
74
|
hasDescription: !!e.description
|
|
73
|
-
}, a = e.customWidth ?? r(e.columnName, void 0, n),
|
|
75
|
+
}, a = e.customWidth ?? r(e.columnName, void 0, n), s = h(e.columnName, t);
|
|
74
76
|
return {
|
|
75
|
-
...
|
|
76
|
-
component:
|
|
77
|
-
title: /* @__PURE__ */
|
|
77
|
+
...s,
|
|
78
|
+
component: g(s.component, e.columnName),
|
|
79
|
+
title: /* @__PURE__ */ l(i, {
|
|
78
80
|
name: e.columnName,
|
|
79
81
|
description: e.description,
|
|
80
82
|
showPinIcon: e.showPinIcon,
|
|
81
83
|
isPinned: e.isPinned,
|
|
82
84
|
onTogglePin: e.onTogglePin
|
|
83
85
|
}),
|
|
84
|
-
headerClassName:
|
|
86
|
+
headerClassName: _(e.isRequired),
|
|
85
87
|
minWidth: a,
|
|
86
88
|
basis: a,
|
|
87
89
|
grow: 0,
|
|
88
90
|
shrink: 0,
|
|
89
91
|
disabled: e.disabled,
|
|
90
|
-
deleteValue:
|
|
92
|
+
deleteValue: v(e.columnName, e.isRequired),
|
|
93
|
+
pasteValue: o(s.pasteValue, e.columnName, e.schemaPropertyInfo),
|
|
91
94
|
stickyLeft: e.isPinned
|
|
92
95
|
};
|
|
93
96
|
}
|
|
94
|
-
var
|
|
95
|
-
multipleEnum: (e) =>
|
|
97
|
+
var x = {
|
|
98
|
+
multipleEnum: (e) => b(e, n({
|
|
96
99
|
choices: e.enumeratedValues ?? [],
|
|
97
100
|
colType: e.typeInfo?.type || null,
|
|
98
101
|
limitTags: 3,
|
|
99
|
-
clearValue: e.isRequired
|
|
102
|
+
clearValue: a(e.isRequired)
|
|
100
103
|
})),
|
|
101
|
-
boolean: (e) =>
|
|
104
|
+
boolean: (e) => b(e, t({
|
|
102
105
|
choices: [!0, !1],
|
|
103
106
|
colType: "boolean",
|
|
104
|
-
clearValue: e.isRequired
|
|
107
|
+
clearValue: a(e.isRequired)
|
|
105
108
|
})),
|
|
106
|
-
number: (e) =>
|
|
107
|
-
enumerated: (e) =>
|
|
109
|
+
number: (e) => b(e, m),
|
|
110
|
+
enumerated: (e) => b(e, t({
|
|
108
111
|
choices: e.enumeratedValues ?? [],
|
|
109
112
|
colType: e.typeInfo?.type || null,
|
|
110
|
-
clearValue: e.isRequired
|
|
113
|
+
clearValue: a(e.isRequired)
|
|
111
114
|
})),
|
|
112
115
|
"date-time": (t) => {
|
|
113
116
|
let n = e({ colType: t.typeInfo?.type || null }), i = {
|
|
@@ -119,27 +122,27 @@ var y = {
|
|
|
119
122
|
enumeratedValues: null
|
|
120
123
|
}, i);
|
|
121
124
|
return {
|
|
122
|
-
...
|
|
125
|
+
...b(t, n),
|
|
123
126
|
minWidth: a,
|
|
124
127
|
basis: a
|
|
125
128
|
};
|
|
126
129
|
},
|
|
127
130
|
text: (e) => ({
|
|
128
|
-
...
|
|
131
|
+
...b(e, p({
|
|
129
132
|
continuousUpdates: !1,
|
|
130
133
|
deletedValue: void 0,
|
|
131
|
-
parseUserInput:
|
|
134
|
+
parseUserInput: y(e.isRequired)
|
|
132
135
|
})),
|
|
133
136
|
cellClassName: "MuiInputBase-input"
|
|
134
137
|
})
|
|
135
138
|
};
|
|
136
|
-
function
|
|
139
|
+
function S(e, t) {
|
|
137
140
|
return e ? e.format === "date-time" ? "date-time" : e.isArray ? "multipleEnum" : e.type === "boolean" ? "boolean" : e.type === "number" || e.type === "integer" ? "number" : t && t.length > 0 ? "enumerated" : "text" : t && t.length > 0 ? "enumerated" : "text";
|
|
138
141
|
}
|
|
139
|
-
function
|
|
140
|
-
return
|
|
142
|
+
function C(e) {
|
|
143
|
+
return x[S(e.typeInfo, e.enumeratedValues)](e);
|
|
141
144
|
}
|
|
142
145
|
//#endregion
|
|
143
|
-
export {
|
|
146
|
+
export { C as createColumn };
|
|
144
147
|
|
|
145
148
|
//# sourceMappingURL=columnFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnFactory.js","names":["dateTimeColumn","EnumeratedValue","FlatTypeInfo","CellComponent","CellProps","Column","createTextColumn","floatColumn","keyColumn","autocompleteColumn","autocompleteMultipleEnumColumn","calculateDefaultColumnWidth","HeaderOptions","ColumnHeaderWithTooltip","Tooltip","SmartToyTwoTone","DataGridRow","withChangeIndicatorTooltip","OriginalComponent","T","C","colName","CellWithTooltip","props","$","_c","changeInfo","rowData","__cellChangeInfo","isAgent","category","t0","t1","tooltipText","position","top","right","width","height","zIndex","pointerEvents","t2","focus","fontSize","alignSelf","flexShrink","mr","color","backgroundColor","t3","displayName","ColumnConfig","columnName","description","disabled","typeInfo","enumeratedValues","isRequired","customWidth","showPinIcon","isPinned","onTogglePin","getHeaderClassName","createDeleteValue","Record","undefined","createParseUserInput","value","trimmedValue","trim","createBaseColumn","config","columnImpl","headerOptions","hasDescription","keyed","component","title","headerClassName","minWidth","basis","grow","shrink","deleteValue","stickyLeft","COLUMN_FACTORIES","multipleEnum","choices","colType","type","limitTags","clearValue","boolean","number","enumerated","date-time","text","continuousUpdates","deletedValue","parseUserInput","cellClassName","getColumnType","length","format","isArray","createColumn","columnType"],"sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"sourcesContent":["import { dateTimeColumn } from '@/components/DataGrid/columns/DateTimeColumn'\nimport { EnumeratedValue } from '@/utils/jsonschema/getEnumeratedValues'\nimport { FlatTypeInfo } from '@/utils/jsonschema/getType'\nimport {\n CellComponent,\n CellProps,\n Column,\n createTextColumn,\n floatColumn,\n keyColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { autocompleteColumn } from '../columns/AutocompleteColumn'\nimport { autocompleteMultipleEnumColumn } from '../columns/AutocompleteMultipleEnumColumn'\nimport {\n calculateDefaultColumnWidth,\n HeaderOptions,\n} from './calculateColumnWidth'\nimport { ColumnHeaderWithTooltip } from '../components/ColumnHeaderWithTooltip'\nimport { Tooltip } from '@mui/material'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport type { DataGridRow } from '../DataGridTypes'\n\n/**\n * Wraps a column cell component to overlay change-attribution indicators:\n * - Non-agent changes: invisible 7×7px tooltip trigger over the CSS triangle (top-right).\n * - Agent changes: robot icon (1em, vertically centered on the right) with no triangle.\n */\nfunction withChangeIndicatorTooltip<T, C>(\n OriginalComponent: CellComponent<T, C>,\n colName: string,\n): CellComponent<T, C> {\n function CellWithTooltip(props: CellProps<T, C>) {\n const changeInfo = (props.rowData as DataGridRow).__cellChangeInfo?.[\n colName\n ]\n const isAgent =\n changeInfo?.category === 'own-agent' ||\n changeInfo?.category === 'other-agent'\n return (\n <>\n <OriginalComponent {...props} />\n {changeInfo && !isAgent && (\n <Tooltip title={changeInfo.tooltipText} placement=\"top-end\">\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: 7,\n height: 7,\n zIndex: 21,\n pointerEvents: 'auto',\n }}\n />\n </Tooltip>\n )}\n {isAgent && !props.focus && (\n <Tooltip title={changeInfo.tooltipText} placement=\"left\">\n <SmartToyTwoTone\n sx={{\n fontSize: '1em',\n alignSelf: 'center',\n flexShrink: 0,\n mr: 0.5,\n zIndex: 21,\n pointerEvents: 'auto',\n color: 'grey.400',\n backgroundColor: 'transparent',\n }}\n />\n </Tooltip>\n )}\n </>\n )\n }\n CellWithTooltip.displayName = `CellWithTooltip(${colName})`\n return CellWithTooltip\n}\n\ntype ColumnConfig = {\n columnName: string\n description?: string\n disabled?: boolean\n typeInfo: FlatTypeInfo | null\n enumeratedValues: EnumeratedValue[] | string[] | null\n isRequired: boolean\n customWidth?: number\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n}\n\nfunction getHeaderClassName(isRequired: boolean): string {\n return isRequired ? 'header-cell-required' : 'header-cell'\n}\n\nfunction createDeleteValue(columnName: string, isRequired?: boolean) {\n return ({ rowData }: { rowData: Record<string, unknown> }) => ({\n ...rowData,\n [columnName]: isRequired ? null : undefined,\n })\n}\n\nfunction createParseUserInput(isRequired?: boolean) {\n return (value: string) => {\n const trimmedValue = value.trim()\n if (trimmedValue === '') {\n return isRequired ? null : undefined\n }\n return trimmedValue\n }\n}\n\nfunction createBaseColumn(config: ColumnConfig, columnImpl: any) {\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n undefined, // propertyInfo is not available here, passed from higher level\n headerOptions,\n )\n\n const keyed = keyColumn(config.columnName, columnImpl)\n return {\n ...keyed,\n component: withChangeIndicatorTooltip(keyed.component!, config.columnName),\n title: (\n <ColumnHeaderWithTooltip\n name={config.columnName}\n description={config.description}\n showPinIcon={config.showPinIcon}\n isPinned={config.isPinned}\n onTogglePin={config.onTogglePin}\n />\n ),\n headerClassName: getHeaderClassName(config.isRequired),\n minWidth: width,\n basis: width,\n grow: 0,\n shrink: 0,\n disabled: config.disabled,\n deleteValue: createDeleteValue(config.columnName, config.isRequired),\n stickyLeft: config.isPinned,\n }\n}\n\nconst COLUMN_FACTORIES = {\n multipleEnum: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteMultipleEnumColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n limitTags: 3,\n clearValue: config.isRequired ? null : undefined,\n }),\n )\n },\n\n boolean: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: [true, false],\n colType: 'boolean',\n clearValue: config.isRequired ? null : undefined,\n }),\n )\n },\n\n number: (config: ColumnConfig) => {\n return createBaseColumn(config, floatColumn)\n },\n\n enumerated: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n clearValue: config.isRequired ? null : undefined,\n }),\n )\n },\n\n 'date-time': (config: ColumnConfig) => {\n const columnImpl = dateTimeColumn({\n colType: config.typeInfo?.type || null,\n })\n\n // Date-time needs special width calculation\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n {\n type: config.typeInfo ?? undefined,\n isRequired: config.isRequired,\n enumeratedValues: null,\n },\n headerOptions,\n )\n\n return {\n ...createBaseColumn(config, columnImpl),\n minWidth: width,\n basis: width,\n }\n },\n\n text: (config: ColumnConfig) => {\n const columnImpl = createTextColumn({\n continuousUpdates: false,\n deletedValue: undefined,\n parseUserInput: createParseUserInput(config.isRequired),\n })\n\n return {\n ...createBaseColumn(config, columnImpl),\n cellClassName: 'MuiInputBase-input',\n }\n },\n}\n\nfunction getColumnType(\n typeInfo: FlatTypeInfo | null,\n enumeratedValues?: EnumeratedValue[] | string[] | null,\n): keyof typeof COLUMN_FACTORIES {\n if (!typeInfo) {\n return enumeratedValues && enumeratedValues.length > 0\n ? 'enumerated'\n : 'text'\n }\n\n if (typeInfo.format === 'date-time') {\n return 'date-time'\n }\n\n // Handle arrays - check if it's an array of enums\n if (typeInfo.isArray) {\n return 'multipleEnum'\n }\n\n if (typeInfo.type === 'boolean') {\n return 'boolean'\n }\n\n if (typeInfo.type === 'number' || typeInfo.type === 'integer') {\n return 'number'\n }\n\n if (enumeratedValues && enumeratedValues.length > 0) {\n return 'enumerated'\n }\n\n return 'text'\n}\n\nexport function createColumn(config: ColumnConfig): Column {\n const columnType = getColumnType(config.typeInfo, config.enumeratedValues)\n return COLUMN_FACTORIES[columnType](config)\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"columnFactory.js","names":["dateTimeColumn","EnumeratedValue","FlatTypeInfo","SchemaPropertyInfo","CellComponent","CellProps","Column","createTextColumn","floatColumn","keyColumn","autocompleteColumn","autocompleteMultipleEnumColumn","calculateDefaultColumnWidth","HeaderOptions","ColumnHeaderWithTooltip","Tooltip","SmartToyTwoTone","DataGridRow","wrapPasteValueWithSchemaCoercion","getEmptyValue","withChangeIndicatorTooltip","OriginalComponent","T","C","colName","CellWithTooltip","props","$","_c","changeInfo","rowData","__cellChangeInfo","isAgent","category","t0","t1","tooltipText","position","top","right","width","height","zIndex","pointerEvents","t2","focus","fontSize","alignSelf","flexShrink","mr","color","backgroundColor","t3","displayName","ColumnConfig","columnName","description","disabled","typeInfo","enumeratedValues","isRequired","customWidth","showPinIcon","isPinned","onTogglePin","schemaPropertyInfo","getHeaderClassName","createDeleteValue","Record","createParseUserInput","value","trimmedValue","trim","createBaseColumn","config","columnImpl","headerOptions","hasDescription","undefined","keyed","component","title","headerClassName","minWidth","basis","grow","shrink","deleteValue","pasteValue","stickyLeft","COLUMN_FACTORIES","multipleEnum","choices","colType","type","limitTags","clearValue","boolean","number","enumerated","date-time","text","continuousUpdates","deletedValue","parseUserInput","cellClassName","getColumnType","length","format","isArray","createColumn","columnType"],"sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"sourcesContent":["import { dateTimeColumn } from '@/components/DataGrid/columns/DateTimeColumn'\nimport { EnumeratedValue } from '@/utils/jsonschema/getEnumeratedValues'\nimport { FlatTypeInfo } from '@/utils/jsonschema/getType'\nimport { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport {\n CellComponent,\n CellProps,\n Column,\n createTextColumn,\n floatColumn,\n keyColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { autocompleteColumn } from '../columns/AutocompleteColumn'\nimport { autocompleteMultipleEnumColumn } from '../columns/AutocompleteMultipleEnumColumn'\nimport {\n calculateDefaultColumnWidth,\n HeaderOptions,\n} from './calculateColumnWidth'\nimport { ColumnHeaderWithTooltip } from '../components/ColumnHeaderWithTooltip'\nimport { Tooltip } from '@mui/material'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport type { DataGridRow } from '../DataGridTypes'\nimport { wrapPasteValueWithSchemaCoercion } from './schemaAwarePasteValue'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Wraps a column cell component to overlay change-attribution indicators:\n * - Non-agent changes: invisible 7×7px tooltip trigger over the CSS triangle (top-right).\n * - Agent changes: robot icon (1em, vertically centered on the right) with no triangle.\n */\nfunction withChangeIndicatorTooltip<T, C>(\n OriginalComponent: CellComponent<T, C>,\n colName: string,\n): CellComponent<T, C> {\n function CellWithTooltip(props: CellProps<T, C>) {\n const changeInfo = (props.rowData as DataGridRow).__cellChangeInfo?.[\n colName\n ]\n const isAgent =\n changeInfo?.category === 'own-agent' ||\n changeInfo?.category === 'other-agent'\n return (\n <>\n <OriginalComponent {...props} />\n {changeInfo && !isAgent && (\n <Tooltip title={changeInfo.tooltipText} placement=\"top-end\">\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: 7,\n height: 7,\n zIndex: 21,\n pointerEvents: 'auto',\n }}\n />\n </Tooltip>\n )}\n {isAgent && !props.focus && (\n <Tooltip title={changeInfo.tooltipText} placement=\"left\">\n <SmartToyTwoTone\n sx={{\n fontSize: '1em',\n alignSelf: 'center',\n flexShrink: 0,\n mr: 0.5,\n zIndex: 21,\n pointerEvents: 'auto',\n color: 'grey.400',\n backgroundColor: 'transparent',\n }}\n />\n </Tooltip>\n )}\n </>\n )\n }\n CellWithTooltip.displayName = `CellWithTooltip(${colName})`\n return CellWithTooltip\n}\n\ntype ColumnConfig = {\n columnName: string\n description?: string\n disabled?: boolean\n typeInfo: FlatTypeInfo | null\n enumeratedValues: EnumeratedValue[] | string[] | null\n isRequired: boolean\n customWidth?: number\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n /**\n * Optional column-level schema info. When provided, paste behavior coerces\n * empty pasted cells to the schema-correct blank (undefined for optional\n * columns, null for required columns). Omit to preserve the column impl's\n * default paste behavior.\n */\n schemaPropertyInfo?: SchemaPropertyInfo\n}\n\nfunction getHeaderClassName(isRequired: boolean): string {\n return isRequired ? 'header-cell-required' : 'header-cell'\n}\n\nfunction createDeleteValue(columnName: string, isRequired?: boolean) {\n return ({ rowData }: { rowData: Record<string, unknown> }) => ({\n ...rowData,\n [columnName]: getEmptyValue(isRequired),\n })\n}\n\nfunction createParseUserInput(isRequired?: boolean) {\n return (value: string) => {\n const trimmedValue = value.trim()\n if (trimmedValue === '') {\n return getEmptyValue(isRequired)\n }\n return trimmedValue\n }\n}\n\nfunction createBaseColumn(config: ColumnConfig, columnImpl: any) {\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n undefined, // propertyInfo is not available here, passed from higher level\n headerOptions,\n )\n\n const keyed = keyColumn(config.columnName, columnImpl)\n return {\n ...keyed,\n component: withChangeIndicatorTooltip(keyed.component!, config.columnName),\n title: (\n <ColumnHeaderWithTooltip\n name={config.columnName}\n description={config.description}\n showPinIcon={config.showPinIcon}\n isPinned={config.isPinned}\n onTogglePin={config.onTogglePin}\n />\n ),\n headerClassName: getHeaderClassName(config.isRequired),\n minWidth: width,\n basis: width,\n grow: 0,\n shrink: 0,\n disabled: config.disabled,\n deleteValue: createDeleteValue(config.columnName, config.isRequired),\n pasteValue: wrapPasteValueWithSchemaCoercion(\n keyed.pasteValue,\n config.columnName,\n config.schemaPropertyInfo,\n ),\n stickyLeft: config.isPinned,\n }\n}\n\nconst COLUMN_FACTORIES = {\n multipleEnum: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteMultipleEnumColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n limitTags: 3,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n boolean: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: [true, false],\n colType: 'boolean',\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n number: (config: ColumnConfig) => {\n return createBaseColumn(config, floatColumn)\n },\n\n enumerated: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n 'date-time': (config: ColumnConfig) => {\n const columnImpl = dateTimeColumn({\n colType: config.typeInfo?.type || null,\n })\n\n // Date-time needs special width calculation\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n {\n type: config.typeInfo ?? undefined,\n isRequired: config.isRequired,\n enumeratedValues: null,\n },\n headerOptions,\n )\n\n return {\n ...createBaseColumn(config, columnImpl),\n minWidth: width,\n basis: width,\n }\n },\n\n text: (config: ColumnConfig) => {\n const columnImpl = createTextColumn({\n continuousUpdates: false,\n deletedValue: undefined,\n parseUserInput: createParseUserInput(config.isRequired),\n })\n\n return {\n ...createBaseColumn(config, columnImpl),\n cellClassName: 'MuiInputBase-input',\n }\n },\n}\n\nfunction getColumnType(\n typeInfo: FlatTypeInfo | null,\n enumeratedValues?: EnumeratedValue[] | string[] | null,\n): keyof typeof COLUMN_FACTORIES {\n if (!typeInfo) {\n return enumeratedValues && enumeratedValues.length > 0\n ? 'enumerated'\n : 'text'\n }\n\n if (typeInfo.format === 'date-time') {\n return 'date-time'\n }\n\n // Handle arrays - check if it's an array of enums\n if (typeInfo.isArray) {\n return 'multipleEnum'\n }\n\n if (typeInfo.type === 'boolean') {\n return 'boolean'\n }\n\n if (typeInfo.type === 'number' || typeInfo.type === 'integer') {\n return 'number'\n }\n\n if (enumeratedValues && enumeratedValues.length > 0) {\n return 'enumerated'\n }\n\n return 'text'\n}\n\nexport function createColumn(config: ColumnConfig): Column {\n const columnType = getColumnType(config.typeInfo, config.enumeratedValues)\n return COLUMN_FACTORIES[columnType](config)\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEmptyValue.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/getEmptyValue.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE,OAAO,oBAEjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEmptyValue.js","names":[],"sources":["../../../../src/components/DataGrid/utils/getEmptyValue.ts"],"sourcesContent":["export function getEmptyValue(isRequired?: boolean) {\n return isRequired ? null : undefined\n}\n"],"mappings":";AAAA,SAAgB,EAAc,GAAsB;AAClD,QAAO,IAAa,OAAO,KAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelColsToGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/modelColsToGrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAA;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAE9E,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,EAAE,MAAM,EAAE,EACrB,oBAAoB,EAAE,mBAAmB,EACzC,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACzC,aAAa,GAAE,GAAG,CAAC,MAAM,CAAa,EACtC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,GAC1C,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"modelColsToGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/modelColsToGrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAA;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAA;AAE9E,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,EAAE,MAAM,EAAE,EACrB,oBAAoB,EAAE,mBAAmB,EACzC,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACzC,aAAa,GAAE,GAAG,CAAC,MAAM,CAAa,EACtC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,GAC1C,MAAM,EAAE,CAuBV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelColsToGrid.js","names":["Column","createColumn","SchemaPropertiesMap","modelColsToGrid","columnNames","columnOrder","schemaPropertiesInfo","columnWidths","Record","pinnedColumns","Set","onTogglePin","columnIndex","map","index","arrayIndex","columnName","propertyInfo","showPinIcon","undefined","isPinned","has","description","typeInfo","type","enumeratedValues","isRequired","disabled","readOnly","customWidth"],"sources":["../../../../src/components/DataGrid/utils/modelColsToGrid.ts"],"sourcesContent":["import { Column } from '@sage-bionetworks/react-datasheet-grid'\nimport { createColumn } from './columnFactory'\nimport { SchemaPropertiesMap } from '@/utils/jsonschema/getSchemaPropertyInfo'\n\nexport function modelColsToGrid(\n columnNames: string[],\n columnOrder: number[],\n schemaPropertiesInfo: SchemaPropertiesMap,\n columnWidths: Record<string, number> = {},\n pinnedColumns: Set<number> = new Set(),\n onTogglePin?: (columnIndex: number) => void,\n): Column[] {\n return columnOrder.map((index: number, arrayIndex: number) => {\n const columnName = columnNames[index]\n const propertyInfo = schemaPropertiesInfo[columnName]\n\n // Only show pin functionality for the first column and when toggle handler exists\n const showPinIcon = arrayIndex === 0 && onTogglePin !== undefined\n const isPinned = pinnedColumns.has(arrayIndex)\n\n return createColumn({\n columnName,\n description: propertyInfo?.description,\n typeInfo: propertyInfo?.type || null,\n enumeratedValues: propertyInfo?.enumeratedValues || [],\n isRequired: propertyInfo?.isRequired || false,\n disabled: propertyInfo?.type?.readOnly,\n customWidth: columnWidths[columnName],\n showPinIcon,\n isPinned,\n onTogglePin: onTogglePin ? () => onTogglePin(arrayIndex) : undefined,\n })\n })\n}\n"],"mappings":";;AAIA,SAAgBG,EACdC,GACAC,GACAC,GACAC,IAAuC,EAAE,EACzCE,oBAA6B,IAAIC,KAAK,EACtCC,GACU;AACV,QAAON,EAAYQ,KAAKC,GAAeC,MAAuB;EAC5D,IAAMC,IAAaZ,EAAYU,IACzBG,IAAeX,EAAqBU,IAGpCE,IAAcH,MAAe,KAAKJ,MAAgBQ,KAAAA,GAClDC,IAAWX,EAAcY,IAAIN,EAAW;AAE9C,SAAOd,EAAa;GAClBe;GACAM,aAAaL,GAAcK;GAC3BC,UAAUN,GAAcO,QAAQ;GAChCC,kBAAkBR,GAAcQ,oBAAoB,EAAE;GACtDC,YAAYT,GAAcS,cAAc;GACxCC,UAAUV,GAAcO,MAAMI;GAC9BC,aAAatB,EAAaS;GAC1BE;GACAE;GACAT,aAAaA,UAAoBA,EAAYI,EAAW,GAAGI,KAAAA;
|
|
1
|
+
{"version":3,"file":"modelColsToGrid.js","names":["Column","createColumn","SchemaPropertiesMap","modelColsToGrid","columnNames","columnOrder","schemaPropertiesInfo","columnWidths","Record","pinnedColumns","Set","onTogglePin","columnIndex","map","index","arrayIndex","columnName","propertyInfo","showPinIcon","undefined","isPinned","has","description","typeInfo","type","enumeratedValues","isRequired","disabled","readOnly","customWidth","schemaPropertyInfo"],"sources":["../../../../src/components/DataGrid/utils/modelColsToGrid.ts"],"sourcesContent":["import { Column } from '@sage-bionetworks/react-datasheet-grid'\nimport { createColumn } from './columnFactory'\nimport { SchemaPropertiesMap } from '@/utils/jsonschema/getSchemaPropertyInfo'\n\nexport function modelColsToGrid(\n columnNames: string[],\n columnOrder: number[],\n schemaPropertiesInfo: SchemaPropertiesMap,\n columnWidths: Record<string, number> = {},\n pinnedColumns: Set<number> = new Set(),\n onTogglePin?: (columnIndex: number) => void,\n): Column[] {\n return columnOrder.map((index: number, arrayIndex: number) => {\n const columnName = columnNames[index]\n const propertyInfo = schemaPropertiesInfo[columnName]\n\n // Only show pin functionality for the first column and when toggle handler exists\n const showPinIcon = arrayIndex === 0 && onTogglePin !== undefined\n const isPinned = pinnedColumns.has(arrayIndex)\n\n return createColumn({\n columnName,\n description: propertyInfo?.description,\n typeInfo: propertyInfo?.type || null,\n enumeratedValues: propertyInfo?.enumeratedValues || [],\n isRequired: propertyInfo?.isRequired || false,\n disabled: propertyInfo?.type?.readOnly,\n customWidth: columnWidths[columnName],\n showPinIcon,\n isPinned,\n onTogglePin: onTogglePin ? () => onTogglePin(arrayIndex) : undefined,\n schemaPropertyInfo: propertyInfo,\n })\n })\n}\n"],"mappings":";;AAIA,SAAgBG,EACdC,GACAC,GACAC,GACAC,IAAuC,EAAE,EACzCE,oBAA6B,IAAIC,KAAK,EACtCC,GACU;AACV,QAAON,EAAYQ,KAAKC,GAAeC,MAAuB;EAC5D,IAAMC,IAAaZ,EAAYU,IACzBG,IAAeX,EAAqBU,IAGpCE,IAAcH,MAAe,KAAKJ,MAAgBQ,KAAAA,GAClDC,IAAWX,EAAcY,IAAIN,EAAW;AAE9C,SAAOd,EAAa;GAClBe;GACAM,aAAaL,GAAcK;GAC3BC,UAAUN,GAAcO,QAAQ;GAChCC,kBAAkBR,GAAcQ,oBAAoB,EAAE;GACtDC,YAAYT,GAAcS,cAAc;GACxCC,UAAUV,GAAcO,MAAMI;GAC9BC,aAAatB,EAAaS;GAC1BE;GACAE;GACAT,aAAaA,UAAoBA,EAAYI,EAAW,GAAGI,KAAAA;GAC3DW,oBAAoBb;GACrB,CAAC;GACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Column } from '@sage-bionetworks/react-datasheet-grid';
|
|
2
|
+
import type { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo';
|
|
3
|
+
/**
|
|
4
|
+
* Coerce an empty cell value to the schema-correct blank before it reaches
|
|
5
|
+
* the model, regardless of how the edit originated (paste, free-typed commit,
|
|
6
|
+
* programmatic CREATE/UPDATE, etc.).
|
|
7
|
+
*
|
|
8
|
+
* - Optional columns -> undefined (property is absent and passes validation
|
|
9
|
+
* for any optional type).
|
|
10
|
+
* - Required columns -> null (validator surfaces a substantive error the
|
|
11
|
+
* user can act on).
|
|
12
|
+
*
|
|
13
|
+
* "Empty" means null, undefined, or a whitespace-only string. Spreadsheet
|
|
14
|
+
* clipboard formats (text/html in particular) can encode visually empty
|
|
15
|
+
* cells as runs of `\n` from stacked `<br>` tags, so the trim check covers
|
|
16
|
+
* those alongside literal "". Empty arrays are not coerced because some
|
|
17
|
+
* columns (e.g. multi-enum) emit [] from their own paste logic and that is
|
|
18
|
+
* the desired in-model representation.
|
|
19
|
+
*
|
|
20
|
+
* If schemaPropertyInfo is omitted, the original value is returned unchanged.
|
|
21
|
+
*/
|
|
22
|
+
export declare function coerceModelCellValue(value: unknown, schemaPropertyInfo?: SchemaPropertyInfo): unknown;
|
|
23
|
+
type PasteValueFn<T, PasteValue> = NonNullable<Column<T, unknown, PasteValue>['pasteValue']>;
|
|
24
|
+
/**
|
|
25
|
+
* Wraps a keyed column's `pasteValue` so that an empty pasted cell is coerced
|
|
26
|
+
* to the schema-correct blank for the column. If `schemaPropertyInfo` is
|
|
27
|
+
* omitted (e.g. the grid is rendered without a JSON schema), the original
|
|
28
|
+
* paste behavior is preserved.
|
|
29
|
+
*/
|
|
30
|
+
export declare function wrapPasteValueWithSchemaCoercion<T extends Record<string, unknown>, PasteValue>(originalPasteValue: PasteValueFn<T, PasteValue> | undefined, columnName: string, schemaPropertyInfo?: SchemaPropertyInfo): PasteValueFn<T, PasteValue> | undefined;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=schemaAwarePasteValue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaAwarePasteValue.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/schemaAwarePasteValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wCAAwC,CAAA;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAGlF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,OAAO,CAYT;AAED,KAAK,YAAY,CAAC,CAAC,EAAE,UAAU,IAAI,WAAW,CAC5C,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,YAAY,CAAC,CAC7C,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,UAAU,EAEV,kBAAkB,EAAE,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,EAC3D,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,CAazC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { getEmptyValue as e } from "./getEmptyValue.js";
|
|
2
|
+
//#region src/components/DataGrid/utils/schemaAwarePasteValue.ts
|
|
3
|
+
function t(t, n) {
|
|
4
|
+
return n && (t == null || typeof t == "string" && t.trim() === "") ? e(n.isRequired) : t;
|
|
5
|
+
}
|
|
6
|
+
function n(e, n, r) {
|
|
7
|
+
return !e || !r ? e : ({ rowData: i, value: a, rowIndex: o }) => {
|
|
8
|
+
let s = e({
|
|
9
|
+
rowData: i,
|
|
10
|
+
value: a,
|
|
11
|
+
rowIndex: o
|
|
12
|
+
}), c = s[n], l = t(c, r);
|
|
13
|
+
return l === c ? s : {
|
|
14
|
+
...s,
|
|
15
|
+
[n]: l
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { t as coerceModelCellValue, n as wrapPasteValueWithSchemaCoercion };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=schemaAwarePasteValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemaAwarePasteValue.js","names":["Column","SchemaPropertyInfo","getEmptyValue","coerceModelCellValue","value","schemaPropertyInfo","undefined","trim","isRequired","PasteValueFn","NonNullable","T","PasteValue","wrapPasteValueWithSchemaCoercion","Record","originalPasteValue","columnName","rowData","rowIndex","result","cellValue","coerced"],"sources":["../../../../src/components/DataGrid/utils/schemaAwarePasteValue.ts"],"sourcesContent":["import type { Column } from '@sage-bionetworks/react-datasheet-grid'\nimport type { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Coerce an empty cell value to the schema-correct blank before it reaches\n * the model, regardless of how the edit originated (paste, free-typed commit,\n * programmatic CREATE/UPDATE, etc.).\n *\n * - Optional columns -> undefined (property is absent and passes validation\n * for any optional type).\n * - Required columns -> null (validator surfaces a substantive error the\n * user can act on).\n *\n * \"Empty\" means null, undefined, or a whitespace-only string. Spreadsheet\n * clipboard formats (text/html in particular) can encode visually empty\n * cells as runs of `\\n` from stacked `<br>` tags, so the trim check covers\n * those alongside literal \"\". Empty arrays are not coerced because some\n * columns (e.g. multi-enum) emit [] from their own paste logic and that is\n * the desired in-model representation.\n *\n * If schemaPropertyInfo is omitted, the original value is returned unchanged.\n */\nexport function coerceModelCellValue(\n value: unknown,\n schemaPropertyInfo?: SchemaPropertyInfo,\n): unknown {\n if (!schemaPropertyInfo) {\n return value\n }\n if (\n value === null ||\n value === undefined ||\n (typeof value === 'string' && value.trim() === '')\n ) {\n return getEmptyValue(schemaPropertyInfo.isRequired)\n }\n return value\n}\n\ntype PasteValueFn<T, PasteValue> = NonNullable<\n Column<T, unknown, PasteValue>['pasteValue']\n>\n\n/**\n * Wraps a keyed column's `pasteValue` so that an empty pasted cell is coerced\n * to the schema-correct blank for the column. If `schemaPropertyInfo` is\n * omitted (e.g. the grid is rendered without a JSON schema), the original\n * paste behavior is preserved.\n */\nexport function wrapPasteValueWithSchemaCoercion<\n T extends Record<string, unknown>,\n PasteValue,\n>(\n originalPasteValue: PasteValueFn<T, PasteValue> | undefined,\n columnName: string,\n schemaPropertyInfo?: SchemaPropertyInfo,\n): PasteValueFn<T, PasteValue> | undefined {\n if (!originalPasteValue || !schemaPropertyInfo) {\n return originalPasteValue\n }\n return ({ rowData, value, rowIndex }) => {\n const result = originalPasteValue({ rowData, value, rowIndex })\n const cellValue = result[columnName]\n const coerced = coerceModelCellValue(cellValue, schemaPropertyInfo)\n if (coerced === cellValue) {\n return result\n }\n return { ...result, [columnName]: coerced } as T\n }\n}\n"],"mappings":";;AAuBA,SAAgBG,EACdC,GACAC,GACS;AAWT,QAVKA,MAIHD,KAAU,QAET,OAAOA,KAAU,YAAYA,EAAMG,MAAM,KAAK,MAExCL,EAAcG,EAAmBG,WAAW,GAE9CJ;;AAaT,SAAgBS,EAIdE,GACAC,GACAX,GACyC;AAIzC,QAHI,CAACU,KAAsB,CAACV,IACnBU,KAED,EAAEE,YAASb,UAAOc,kBAAe;EACvC,IAAMC,IAASJ,EAAmB;GAAEE;GAASb;GAAOc;GAAU,CAAC,EACzDE,IAAYD,EAAOH,IACnBK,IAAUlB,EAAqBiB,GAAWf,EAAmB;AAInE,SAHIgB,MAAYD,IACPD,IAEF;GAAE,GAAGA;IAASH,IAAaK;GAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._visuallyHidden_58da9_1{clip:rect(0 0 0 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}._externalWarningPanel_58da9_12{box-sizing:border-box;flex-direction:row;align-items:center;gap:12px;width:500px;padding:16px;display:flex;position:fixed;bottom:160px;right:20px}._externalWarningPanel_58da9_12._externalWarningPanel_58da9_12{background-color:#223549;border-radius:0}._warningIcon_58da9_29{flex-shrink:0}._warningIcon_58da9_29._warningIcon_58da9_29{font-size:40px}._warningTextContainer_58da9_36{flex:1}._warningTitleText_58da9_40._warningTitleText_58da9_40{color:#fff;font-size:14px;font-weight:700;line-height:1.4}._warningCloseButton_58da9_47._warningCloseButton_58da9_47{color:#fff;flex-shrink:0;align-self:flex-start}._warningCloseButton_58da9_47._warningCloseButton_58da9_47:hover{color:#889baf}._progressPanel_58da9_56{box-sizing:border-box;flex-direction:column;gap:4px;width:500px;height:150px;padding:16px;display:flex;position:fixed;bottom:20px;right:20px}._progressPanel_58da9_56._progressPanel_58da9_56{background-color:#223549;border-radius:0}._progressTitleText_58da9_73._progressTitleText_58da9_73{color:#fff;font-size:14px;line-height:1.4}._progressFileNameText_58da9_79{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._progressFileNameText_58da9_79._progressFileNameText_58da9_79{color:#889baf;font-size:13px;line-height:1.4}._progressFooter_58da9_90{flex:1;align-items:center;gap:8px;margin-top:auto;display:flex}._progressBarContainer_58da9_98{flex-direction:column;flex:1;gap:4px;display:flex}._progressStats_58da9_105{justify-content:space-between;display:flex}._progressStatsText_58da9_110._progressStatsText_58da9_110{color:#889baf;font-size:12px}._progressBar_58da9_98 .MuiLinearProgress-bar{background-color:#469285}._cancelButtonContainer_58da9_119{flex-shrink:0;justify-content:center;width:80px;display:flex}._cancelButton_58da9_119._cancelButton_58da9_119{color:#fff;border-color:#fff;min-width:0;padding:10px 16px;font-size:.75rem;line-height:1}._cancelButton_58da9_119._cancelButton_58da9_119:hover{color:#889baf;border-color:#889baf}
|
package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadIneligibleForPackagingFilesFromListButton.d.ts","sourceRoot":"","sources":["../../../src/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DownloadIneligibleForPackagingFilesFromListButton.d.ts","sourceRoot":"","sources":["../../../src/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.tsx"],"names":[],"mappings":"AAoEA,MAAM,MAAM,sDAAsD,GAAG;IACnE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,CAAA;CAC5C,CAAA;AAED;;;;GAIG;AACH,wBAAgB,iDAAiD,CAC/D,KAAK,EAAE,sDAAsD,kDAw0B9D;AAED,eAAe,iDAAiD,CAAA"}
|