pollination-react-io 1.24.0 → 1.24.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/build/CreateStudy/CreateStudy.types.d.ts +7 -3
- package/build/atoms/RadioList/RadioList.types.d.ts +2 -2
- package/build/hooks/utilities.d.ts +1 -1
- package/build/index.esm.js +95 -96
- package/build/index.esm.js.map +1 -1
- package/build/index.js +95 -96
- package/build/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { UserPrivate } from '@pollination-solutions/pollination-sdk';
|
|
1
|
+
import type { Project, RecipeInterface, UserPrivate } from '@pollination-solutions/pollination-sdk';
|
|
2
2
|
import { CSSProperties } from 'react';
|
|
3
3
|
import { APIClient } from '../hooks';
|
|
4
|
+
import { Account } from '../SelectAccount/SelectAccount.types';
|
|
4
5
|
export declare type CreateStudyProps = {
|
|
5
|
-
authUser?: UserPrivate;
|
|
6
|
-
client?: APIClient;
|
|
7
6
|
style?: CSSProperties;
|
|
8
7
|
controlledRecipeInputs?: {
|
|
9
8
|
[index: string]: {
|
|
@@ -11,5 +10,10 @@ export declare type CreateStudyProps = {
|
|
|
11
10
|
hidden?: boolean;
|
|
12
11
|
};
|
|
13
12
|
};
|
|
13
|
+
defaultAccount?: Account;
|
|
14
|
+
defaultProject?: Project;
|
|
15
|
+
defaultRecipe?: RecipeInterface;
|
|
14
16
|
createStudySuccess?: (accountName: string, projectName: string, studyId: string) => void;
|
|
17
|
+
authUser?: UserPrivate;
|
|
18
|
+
client?: APIClient;
|
|
15
19
|
};
|
|
@@ -3,7 +3,7 @@ export declare function checkDotNet(): boolean;
|
|
|
3
3
|
export declare function checkRuby(): boolean;
|
|
4
4
|
export declare function checkPollinationPanel(): boolean;
|
|
5
5
|
export declare function sendMessageDotNet(message: PanelMessageIn): PanelMessageIn;
|
|
6
|
-
export declare function sendMessageRuby(message
|
|
6
|
+
export declare function sendMessageRuby(message?: PanelMessageIn): any;
|
|
7
7
|
export declare function getHost(key?: string, defaultValue?: 'web' | 'rhino' | 'revit' | 'sketchup'): 'web' | 'rhino' | 'revit' | 'sketchup';
|
|
8
8
|
export declare const recipeLinkFromSource: (source: string) => string;
|
|
9
9
|
export declare function formatBytes(bytes: any, decimals?: number): string;
|
package/build/index.esm.js
CHANGED
|
@@ -8702,6 +8702,8 @@ var ComboBox = React__default.forwardRef(function ComboBox(_a, ref) {
|
|
|
8702
8702
|
borderBottomLeftRadius: isOpen ? 0 : 4,
|
|
8703
8703
|
flex: 12,
|
|
8704
8704
|
lineHeight: '1.5rem',
|
|
8705
|
+
}, onReset: function () {
|
|
8706
|
+
selectItem(undefined);
|
|
8705
8707
|
} }, inputProps), { onFocus: function () {
|
|
8706
8708
|
openMenu();
|
|
8707
8709
|
}, type: hidden ? 'hidden' : undefined })))),
|
|
@@ -14380,7 +14382,7 @@ Dropzone.propTypes = {
|
|
|
14380
14382
|
* @property {Function} open Open the native file selection dialog
|
|
14381
14383
|
*/
|
|
14382
14384
|
|
|
14383
|
-
var initialState
|
|
14385
|
+
var initialState = {
|
|
14384
14386
|
isFocused: false,
|
|
14385
14387
|
isFileDialogActive: false,
|
|
14386
14388
|
isDragActive: false,
|
|
@@ -14515,7 +14517,7 @@ function useDropzone() {
|
|
|
14515
14517
|
var rootRef = useRef(null);
|
|
14516
14518
|
var inputRef = useRef(null);
|
|
14517
14519
|
|
|
14518
|
-
var _useReducer = useReducer(reducer, initialState
|
|
14520
|
+
var _useReducer = useReducer(reducer, initialState),
|
|
14519
14521
|
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
14520
14522
|
state = _useReducer2[0],
|
|
14521
14523
|
dispatch = _useReducer2[1];
|
|
@@ -14965,7 +14967,7 @@ function reducer(state, action) {
|
|
|
14965
14967
|
});
|
|
14966
14968
|
|
|
14967
14969
|
case "openDialog":
|
|
14968
|
-
return _objectSpread(_objectSpread({}, initialState
|
|
14970
|
+
return _objectSpread(_objectSpread({}, initialState), {}, {
|
|
14969
14971
|
isFileDialogActive: true
|
|
14970
14972
|
});
|
|
14971
14973
|
|
|
@@ -14988,7 +14990,7 @@ function reducer(state, action) {
|
|
|
14988
14990
|
});
|
|
14989
14991
|
|
|
14990
14992
|
case "reset":
|
|
14991
|
-
return _objectSpread({}, initialState
|
|
14993
|
+
return _objectSpread({}, initialState);
|
|
14992
14994
|
|
|
14993
14995
|
default:
|
|
14994
14996
|
return state;
|
|
@@ -15593,14 +15595,24 @@ var css_248z$9 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --
|
|
|
15593
15595
|
styleInject(css_248z$9);
|
|
15594
15596
|
|
|
15595
15597
|
var RadioList = function (_a) {
|
|
15596
|
-
var items = _a.items, name = _a.name,
|
|
15597
|
-
|
|
15598
|
+
var items = _a.items, name = _a.name, onChange = _a.onChange, value = _a.value;
|
|
15599
|
+
var _b = useState(value), val = _b[0], setVal = _b[1];
|
|
15600
|
+
useEffect(function () {
|
|
15601
|
+
setVal(value);
|
|
15602
|
+
}, [value]);
|
|
15603
|
+
useEffect(function () {
|
|
15604
|
+
onChange && onChange(val);
|
|
15605
|
+
}, [onChange, val]);
|
|
15606
|
+
var handleChange = function (value) {
|
|
15607
|
+
setVal(value);
|
|
15608
|
+
};
|
|
15609
|
+
return (React__default.createElement($f99a8c78507165f7$export$be92b6f5f03c0fe9, { value: val, style: {
|
|
15598
15610
|
display: 'flex',
|
|
15599
15611
|
gap: 10,
|
|
15600
15612
|
flexDirection: 'column',
|
|
15601
15613
|
padding: '16px 8px',
|
|
15602
15614
|
borderTop: '1px solid var(--primary)',
|
|
15603
|
-
}, name: name,
|
|
15615
|
+
}, name: name, onValueChange: handleChange },
|
|
15604
15616
|
React__default.createElement(React__default.Fragment, null, items.map(function (item, i) {
|
|
15605
15617
|
return (React__default.createElement("div", { key: "".concat(item, "-").concat(i), style: {
|
|
15606
15618
|
display: 'flex',
|
|
@@ -37772,48 +37784,40 @@ function checkRuby() {
|
|
|
37772
37784
|
function checkPollinationPanel() {
|
|
37773
37785
|
try {
|
|
37774
37786
|
if (typeof window.parent.chrome === 'undefined') {
|
|
37775
|
-
|
|
37776
|
-
return false;
|
|
37787
|
+
throw new Error('[POLLINATION-DEBUG]: chrome not found.');
|
|
37777
37788
|
}
|
|
37778
37789
|
}
|
|
37779
37790
|
catch (_a) {
|
|
37780
|
-
|
|
37781
|
-
return false;
|
|
37791
|
+
throw new Error('[POLLINATION-DEBUG]: chrome not found.');
|
|
37782
37792
|
}
|
|
37783
37793
|
try {
|
|
37784
37794
|
if (typeof window.parent.chrome.webview === 'undefined') {
|
|
37785
|
-
|
|
37786
|
-
return false;
|
|
37795
|
+
throw new Error('[POLLINATION-DEBUG]: webview not found.');
|
|
37787
37796
|
}
|
|
37788
37797
|
}
|
|
37789
37798
|
catch (_b) {
|
|
37790
|
-
|
|
37791
|
-
return false;
|
|
37799
|
+
throw new Error('[POLLINATION-DEBUG]: webview not found.');
|
|
37792
37800
|
}
|
|
37793
37801
|
try {
|
|
37794
37802
|
if (typeof window.parent.chrome.webview.hostObjects === 'undefined') {
|
|
37795
|
-
|
|
37796
|
-
return false;
|
|
37803
|
+
throw new Error('[POLLINATION-DEBUG]: webview.hostObjects not found.');
|
|
37797
37804
|
}
|
|
37798
37805
|
}
|
|
37799
37806
|
catch (_c) {
|
|
37800
|
-
|
|
37801
|
-
return false;
|
|
37807
|
+
throw new Error('[POLLINATION-DEBUG]: webview.hostObjects not found.');
|
|
37802
37808
|
}
|
|
37803
37809
|
try {
|
|
37804
37810
|
if (typeof window.parent.chrome.webview.hostObjects.sync === 'undefined') {
|
|
37805
|
-
|
|
37806
|
-
return false;
|
|
37811
|
+
throw new Error('[POLLINATION-DEBUG]: webview.hostObjects.sync not found.');
|
|
37807
37812
|
}
|
|
37808
37813
|
}
|
|
37809
37814
|
catch (_d) {
|
|
37810
|
-
|
|
37811
|
-
return false;
|
|
37815
|
+
throw new Error('[POLLINATION-DEBUG]: webview.hostObjects.sync not found.');
|
|
37812
37816
|
}
|
|
37813
37817
|
return true;
|
|
37814
37818
|
}
|
|
37815
37819
|
function sendMessageDotNet(message) {
|
|
37816
|
-
if (!
|
|
37820
|
+
if (!checkPollinationPanel())
|
|
37817
37821
|
;
|
|
37818
37822
|
// const json = JSON.stringify(message)
|
|
37819
37823
|
var json = message;
|
|
@@ -37829,10 +37833,9 @@ function sendMessageDotNet(message) {
|
|
|
37829
37833
|
return message;
|
|
37830
37834
|
}
|
|
37831
37835
|
function sendMessageRuby(message) {
|
|
37832
|
-
if (!
|
|
37836
|
+
if (!checkPollinationPanel())
|
|
37833
37837
|
;
|
|
37834
|
-
|
|
37835
|
-
return message;
|
|
37838
|
+
throw new Error('[POLLINATION-DEBUG]: sendMesssageRuby not yet implemented');
|
|
37836
37839
|
}
|
|
37837
37840
|
// not sure if this will work from Streamlit?
|
|
37838
37841
|
function getHost(key, defaultValue) {
|
|
@@ -37872,16 +37875,22 @@ function blobToBase64(blob) {
|
|
|
37872
37875
|
if (typeof reader.result !== 'string') {
|
|
37873
37876
|
return;
|
|
37874
37877
|
}
|
|
37875
|
-
resolve(
|
|
37878
|
+
resolve(reader.result.split(',')[1]);
|
|
37876
37879
|
};
|
|
37877
|
-
reader.
|
|
37880
|
+
reader.readAsDataURL(blob);
|
|
37878
37881
|
})];
|
|
37879
37882
|
});
|
|
37880
37883
|
});
|
|
37881
37884
|
}
|
|
37882
37885
|
var usePollinationPanel = function () {
|
|
37883
37886
|
var panel = useMemo(function () {
|
|
37884
|
-
|
|
37887
|
+
try {
|
|
37888
|
+
checkPollinationPanel();
|
|
37889
|
+
}
|
|
37890
|
+
catch (_a) {
|
|
37891
|
+
return false;
|
|
37892
|
+
}
|
|
37893
|
+
return window.parent.chrome.webview.hostObjects.sync.study;
|
|
37885
37894
|
}, []);
|
|
37886
37895
|
var saveFileBase64 = useCallback(function (key, file, subFolder, fileName) { return __awaiter$1(void 0, void 0, void 0, function () {
|
|
37887
37896
|
var base64;
|
|
@@ -38089,14 +38098,16 @@ var useCreateStudy = function (accountName, projectName, client) {
|
|
|
38089
38098
|
var input = recipe.inputs.find(function (i) { return i.name === d[0]; });
|
|
38090
38099
|
return processEntryLocal(d, input, cloudProjectName);
|
|
38091
38100
|
}))
|
|
38092
|
-
.then(function (jobArguments) {
|
|
38093
|
-
|
|
38094
|
-
|
|
38095
|
-
|
|
38096
|
-
|
|
38097
|
-
|
|
38098
|
-
|
|
38099
|
-
|
|
38101
|
+
.then(function (jobArguments) {
|
|
38102
|
+
return ({
|
|
38103
|
+
type: 'Job',
|
|
38104
|
+
api_version: 'v1beta1',
|
|
38105
|
+
name: name,
|
|
38106
|
+
description: description,
|
|
38107
|
+
source: recipe.source,
|
|
38108
|
+
arguments: [jobArguments]
|
|
38109
|
+
});
|
|
38110
|
+
}).catch(function (err) {
|
|
38100
38111
|
var data = err.response.data;
|
|
38101
38112
|
console.error(data.detail);
|
|
38102
38113
|
})];
|
|
@@ -38114,7 +38125,6 @@ var useCreateStudy = function (accountName, projectName, client) {
|
|
|
38114
38125
|
console.log(jobInfo);
|
|
38115
38126
|
response = window.parent.chrome.webview.hostObjects.study.RunSimulation(JSON.stringify(jobInfo))
|
|
38116
38127
|
.then(function (value) {
|
|
38117
|
-
console.log(value);
|
|
38118
38128
|
onSuccess && onSuccess(cloudProjectOwner, cloudProjectName, value);
|
|
38119
38129
|
}, function (reason) {
|
|
38120
38130
|
console.error(reason);
|
|
@@ -40651,7 +40661,8 @@ var SelectCloudArtifacts = function (_a) {
|
|
|
40651
40661
|
}, [selArtifact]);
|
|
40652
40662
|
useEffect(function () {
|
|
40653
40663
|
// nonmemoized value from react-hook-form or other parent causes infinite rerendering
|
|
40654
|
-
if (lodash_isequal(valueRef.current, selArtifact)
|
|
40664
|
+
if (lodash_isequal(valueRef.current, selArtifact) ||
|
|
40665
|
+
(!valueRef.current && !selArtifact)) {
|
|
40655
40666
|
return;
|
|
40656
40667
|
}
|
|
40657
40668
|
// if selection is a folder instead of an artifact
|
|
@@ -40781,7 +40792,7 @@ var SelectLocalArtifactNative = function (_a) {
|
|
|
40781
40792
|
}
|
|
40782
40793
|
catch (error) {
|
|
40783
40794
|
// common error is incorrect fileMatchPattern
|
|
40784
|
-
console.
|
|
40795
|
+
console.error(error);
|
|
40785
40796
|
}
|
|
40786
40797
|
if (res && typeof res.data === 'string') {
|
|
40787
40798
|
setSelPath(res.data);
|
|
@@ -44039,8 +44050,8 @@ var RecipeInputsForm = function (_a) {
|
|
|
44039
44050
|
var host = getHost();
|
|
44040
44051
|
var _f = useForm({
|
|
44041
44052
|
resolver: Oe(schema),
|
|
44042
|
-
mode: 'all'
|
|
44043
|
-
}), control = _f.control, register = _f.register, handleSubmit = _f.handleSubmit, reset = _f.reset, resetField = _f.resetField, _g = _f.formState, errors = _g.errors, isValid = _g.isValid
|
|
44053
|
+
mode: 'all',
|
|
44054
|
+
}), control = _f.control, register = _f.register, handleSubmit = _f.handleSubmit, reset = _f.reset, resetField = _f.resetField, _g = _f.formState, errors = _g.errors, isValid = _g.isValid, isSubmitSuccessful = _g.isSubmitSuccessful;
|
|
44044
44055
|
var _onSubmit = function (_data) {
|
|
44045
44056
|
var data = __assign({}, _data);
|
|
44046
44057
|
// strip study name
|
|
@@ -44054,7 +44065,7 @@ var RecipeInputsForm = function (_a) {
|
|
|
44054
44065
|
if (val === inputDefaults.get(key)) {
|
|
44055
44066
|
delete data[key];
|
|
44056
44067
|
}
|
|
44057
|
-
if (!inputDefaults.get(key) && !data[key]) {
|
|
44068
|
+
if (!inputDefaults.get(key) && !data[key] && data[key] !== 0) {
|
|
44058
44069
|
delete data[key];
|
|
44059
44070
|
}
|
|
44060
44071
|
});
|
|
@@ -44062,6 +44073,14 @@ var RecipeInputsForm = function (_a) {
|
|
|
44062
44073
|
setLoading(true);
|
|
44063
44074
|
onSubmit(studyName, data, 'description', localConfig)
|
|
44064
44075
|
.finally(function () {
|
|
44076
|
+
// @ts-ignore
|
|
44077
|
+
var defaults = recipe.inputs.map(function (input) {
|
|
44078
|
+
var _a;
|
|
44079
|
+
var _b;
|
|
44080
|
+
return (_a = {}, _a[input.name] = (_b = input.default) !== null && _b !== void 0 ? _b : '', _a);
|
|
44081
|
+
});
|
|
44082
|
+
defaults.push({ 'study-name': '' });
|
|
44083
|
+
// console.log(defaults)
|
|
44065
44084
|
reset();
|
|
44066
44085
|
setLoading(false);
|
|
44067
44086
|
});
|
|
@@ -44082,7 +44101,7 @@ var RecipeInputsForm = function (_a) {
|
|
|
44082
44101
|
gap: 20
|
|
44083
44102
|
} },
|
|
44084
44103
|
React__default.createElement(FormInput, { name: 'study-name', description: 'Study name is a required field.', errorMessage: errors['study-name'] ? (_b = errors['study-name']) === null || _b === void 0 ? void 0 : _b.message : undefined },
|
|
44085
|
-
React__default.createElement(TextInput, { inputProps: __assign({ form: recipe.metadata.name }, register('study-name'))
|
|
44104
|
+
React__default.createElement(TextInput, { inputProps: __assign({ form: recipe.metadata.name }, register('study-name')) })),
|
|
44086
44105
|
host !== 'web' &&
|
|
44087
44106
|
React__default.createElement(ConfigureLocalRun, { onChange: function (localConfig) { return setLocalConfig(localConfig); }, defaultVal: localConfig }),
|
|
44088
44107
|
React__default.createElement(Tabs, { forceRenderTabPanel: true },
|
|
@@ -44116,11 +44135,7 @@ var RecipeInputsForm = function (_a) {
|
|
|
44116
44135
|
var _a;
|
|
44117
44136
|
switch (input.type) {
|
|
44118
44137
|
case 'DAGFileInput':
|
|
44119
|
-
return React__default.createElement(Controller
|
|
44120
|
-
// @ts-ignore
|
|
44121
|
-
, {
|
|
44122
|
-
// @ts-ignore
|
|
44123
|
-
name: input.name, control: control, defaultValue: defaultValue, render: function (_a) {
|
|
44138
|
+
return React__default.createElement(Controller, { name: input.name, control: control, defaultValue: defaultValue, render: function (_a) {
|
|
44124
44139
|
var _b = _a.field, value = _b.value, onChange = _b.onChange, field = __rest(_b, ["value", "onChange"]);
|
|
44125
44140
|
return (React__default.createElement(ComboFileSelector, { projectOwner: projectOwner, projectName: projectName, defaultOption: input.extensions &&
|
|
44126
44141
|
input.extensions.includes('hbjson') &&
|
|
@@ -44128,17 +44143,13 @@ var RecipeInputsForm = function (_a) {
|
|
|
44128
44143
|
get_model: input.extensions.includes('hbjson') && host !== 'web',
|
|
44129
44144
|
get_local: host !== 'web',
|
|
44130
44145
|
get_file: host === 'web'
|
|
44131
|
-
}, value: value, onChange: onChange,
|
|
44146
|
+
}, value: value, onChange: onChange, inputProps: __assign(__assign({}, field), { accept: input.extensions.map(function (e) { return ".".concat(e); }).join(', ') }), hidden: hidden, client: client }));
|
|
44132
44147
|
} });
|
|
44133
44148
|
case 'DAGStringInput':
|
|
44134
44149
|
return typeof ((_a = input.spec) === null || _a === void 0 ? void 0 : _a.enum) !== 'undefined' ?
|
|
44135
|
-
React__default.createElement(Controller
|
|
44136
|
-
|
|
44137
|
-
|
|
44138
|
-
// @ts-ignore
|
|
44139
|
-
name: input.name, control: control, render: function (_a) {
|
|
44140
|
-
var onChange = _a.field.onChange;
|
|
44141
|
-
return (React__default.createElement(RadioList, { items: input.spec.enum, name: input.name, defaultValue: defaultValue, onChange: onChange }));
|
|
44150
|
+
React__default.createElement(Controller, { name: input.name, control: control, defaultValue: defaultValue, render: function (_a) {
|
|
44151
|
+
var _b = _a.field, onChange = _b.onChange, value = _b.value; __rest(_b, ["onChange", "value"]);
|
|
44152
|
+
return (React__default.createElement(RadioList, { items: input.spec.enum, name: input.name, onChange: onChange, value: value }));
|
|
44142
44153
|
} }) :
|
|
44143
44154
|
React__default.createElement(TextInput, { inputProps: __assign(__assign({}, inputProps), { defaultValue: defaultValue }), hidden: hidden, reset: handleReset });
|
|
44144
44155
|
case 'DAGNumberInput':
|
|
@@ -44164,7 +44175,7 @@ var RecipeInputsForm = function (_a) {
|
|
|
44164
44175
|
// @ts-ignore
|
|
44165
44176
|
React__default.createElement("li", { key: key, style: { color: 'red', fontSize: '0.8rem', listStyle: 'none' } }, "".concat(key, " ").concat(val.message, ".")));
|
|
44166
44177
|
}))) :
|
|
44167
|
-
'
|
|
44178
|
+
isSubmitSuccessful ? 'Study has been successfully submitted.' : 'Study input isn\'t valid.' },
|
|
44168
44179
|
React__default.createElement(Button, { type: 'submit', form: recipe.metadata.name, disabled: !isValid || loading, style: {
|
|
44169
44180
|
width: 'fit-content',
|
|
44170
44181
|
}, loading: loading }, "Create Study"))))));
|
|
@@ -44173,11 +44184,6 @@ var RecipeInputsForm = function (_a) {
|
|
|
44173
44184
|
var css_248z$3 = ".react-tabs {\n -webkit-tap-highlight-color: transparent;\n}\n\n.react-tabs__tab-list {\n border-bottom: 1px solid #aaa;\n margin: 0 0 10px;\n padding: 0;\n}\n\n.react-tabs__tab {\n display: inline-block;\n border: 1px solid transparent;\n border-bottom: none;\n bottom: -1px;\n position: relative;\n list-style: none;\n padding: 6px 12px;\n cursor: pointer;\n}\n\n.react-tabs__tab--selected {\n background: #fff;\n border-color: #aaa;\n color: black;\n border-radius: 5px 5px 0 0;\n}\n\n.react-tabs__tab--disabled {\n color: GrayText;\n cursor: default;\n}\n\n.react-tabs__tab:focus {\n outline: none;\n}\n\n.react-tabs__tab:focus:after {\n content: '';\n position: absolute;\n height: 5px;\n left: -4px;\n right: -4px;\n bottom: -5px;\n background: #fff;\n}\n\n.react-tabs__tab-panel {\n display: none;\n}\n\n.react-tabs__tab-panel--selected {\n display: block;\n}\n";
|
|
44174
44185
|
styleInject(css_248z$3);
|
|
44175
44186
|
|
|
44176
|
-
var initialState = {
|
|
44177
|
-
account: undefined,
|
|
44178
|
-
project: undefined,
|
|
44179
|
-
recipe: undefined,
|
|
44180
|
-
};
|
|
44181
44187
|
var defaultStyle = {
|
|
44182
44188
|
display: 'flex',
|
|
44183
44189
|
flexDirection: 'column',
|
|
@@ -44185,27 +44191,20 @@ var defaultStyle = {
|
|
|
44185
44191
|
};
|
|
44186
44192
|
var CreateStudy = function (_a) {
|
|
44187
44193
|
var _b;
|
|
44188
|
-
var
|
|
44194
|
+
var style = _a.style, controlledRecipeInputs = _a.controlledRecipeInputs, defaultAccount = _a.defaultAccount, defaultProject = _a.defaultProject, defaultRecipe = _a.defaultRecipe, createStudySuccess = _a.createStudySuccess, authUser = _a.authUser, client = _a.client;
|
|
44189
44195
|
var _c = useState(0), activeTabIndex = _c[0], setActiveTabIndex = _c[1];
|
|
44190
|
-
var _d = useState(
|
|
44191
|
-
var
|
|
44192
|
-
|
|
44193
|
-
}, []);
|
|
44194
|
-
var setSelProject = useCallback(function (project) {
|
|
44195
|
-
setState(function (state) { return (__assign(__assign({}, state), { project: project, recipe: undefined })); });
|
|
44196
|
-
}, []);
|
|
44197
|
-
var setSelRecipe = useCallback(function (recipe) {
|
|
44198
|
-
setState(function (state) { return (__assign(__assign({}, state), { recipe: recipe })); });
|
|
44199
|
-
}, []);
|
|
44196
|
+
var _d = useState(defaultAccount), selAccount = _d[0], setSelAccount = _d[1];
|
|
44197
|
+
var _e = useState(defaultProject), selProject = _e[0], setSelProject = _e[1];
|
|
44198
|
+
var _f = useState(defaultRecipe), selRecipe = _f[0], setSelRecipe = _f[1];
|
|
44200
44199
|
// @ts-ignore
|
|
44201
|
-
var projectOwner =
|
|
44202
|
-
var projectSlug =
|
|
44203
|
-
var
|
|
44200
|
+
var projectOwner = selAccount ? ((_b = selAccount.username) !== null && _b !== void 0 ? _b : selAccount.account_name) : undefined;
|
|
44201
|
+
var projectSlug = selProject ? selProject.slug.split('/')[1] : undefined;
|
|
44202
|
+
var _g = useCreateStudy(projectOwner, projectSlug, client), host = _g.host, createStudy = _g.createStudy, createLocalStudy = _g.createLocalStudy;
|
|
44204
44203
|
useEffect(function () {
|
|
44205
|
-
if (!
|
|
44204
|
+
if (!selRecipe)
|
|
44206
44205
|
return;
|
|
44207
44206
|
setActiveTabIndex(1);
|
|
44208
|
-
}, [
|
|
44207
|
+
}, [selRecipe]);
|
|
44209
44208
|
var basePath = useMemo(function () {
|
|
44210
44209
|
return client.config.basePath.replace('api', 'app');
|
|
44211
44210
|
}, [client]);
|
|
@@ -44217,19 +44216,19 @@ var CreateStudy = function (_a) {
|
|
|
44217
44216
|
window.open("".concat(basePath, "/").concat(accountName, "/projects/").concat(projectName, "/studies/").concat(studyId));
|
|
44218
44217
|
}, [basePath]);
|
|
44219
44218
|
var handleCreateStudy = useCallback(function (name, data, description, localConfig) {
|
|
44220
|
-
if (!
|
|
44219
|
+
if (!selRecipe) {
|
|
44221
44220
|
return new Promise(function (resolve, reject) { return resolve(); });
|
|
44222
44221
|
}
|
|
44223
44222
|
var handleSuccess = createStudySuccess !== null && createStudySuccess !== void 0 ? createStudySuccess : handleCreateStudySuccess;
|
|
44224
44223
|
// don't attempt navigation if the study is a local study
|
|
44225
44224
|
var handleWebSuccess = localConfig && localConfig.isLocalJob ? handleSuccess : undefined;
|
|
44226
44225
|
if (host !== 'web') {
|
|
44227
|
-
return createLocalStudy({ name: name, recipe:
|
|
44226
|
+
return createLocalStudy({ name: name, recipe: selRecipe, description: description }, data, localConfig, handleWebSuccess);
|
|
44228
44227
|
}
|
|
44229
44228
|
else {
|
|
44230
|
-
return createStudy({ name: name, recipe:
|
|
44229
|
+
return createStudy({ name: name, recipe: selRecipe, description: description }, data, handleWebSuccess);
|
|
44231
44230
|
}
|
|
44232
|
-
}, [
|
|
44231
|
+
}, [createLocalStudy, createStudy, createStudySuccess, handleCreateStudySuccess, host, selRecipe]);
|
|
44233
44232
|
return (React__default.createElement("div", { "data-testid": "CreateProject", style: __assign(__assign({}, defaultStyle), style) },
|
|
44234
44233
|
React__default.createElement(Tabs, { selectedIndex: activeTabIndex, onSelect: function (index) { return setActiveTabIndex(index); }, forceRenderTabPanel: true },
|
|
44235
44234
|
React__default.createElement("div", { style: {
|
|
@@ -44242,7 +44241,7 @@ var CreateStudy = function (_a) {
|
|
|
44242
44241
|
flex: 1
|
|
44243
44242
|
} },
|
|
44244
44243
|
React__default.createElement(Tab, null, "Select Recipe"),
|
|
44245
|
-
|
|
44244
|
+
selRecipe &&
|
|
44246
44245
|
React__default.createElement(Tab, null, "Recipe Inputs"))),
|
|
44247
44246
|
React__default.createElement(TabPanel, { style: {
|
|
44248
44247
|
padding: '8px 8px'
|
|
@@ -44252,14 +44251,14 @@ var CreateStudy = function (_a) {
|
|
|
44252
44251
|
flexDirection: 'column',
|
|
44253
44252
|
gap: 8
|
|
44254
44253
|
} },
|
|
44255
|
-
React__default.createElement(Label, { label:
|
|
44256
|
-
React__default.createElement(SelectAccount, { authUser: authUser, client: client, onChange: setSelAccount })),
|
|
44257
|
-
React__default.createElement(Label, { label:
|
|
44258
|
-
React__default.createElement(SelectProject, { authUser: authUser, client: client, onChange: setSelProject, projectOwner: projectOwner })),
|
|
44259
|
-
React__default.createElement(Label, { label:
|
|
44260
|
-
|
|
44261
|
-
React__default.createElement(SelectRecipe, { authUser: authUser, client: client, projectOwner: projectOwner, projectName:
|
|
44262
|
-
|
|
44254
|
+
React__default.createElement(Label, { label: selAccount ? selAccount.name : 'Account' },
|
|
44255
|
+
React__default.createElement(SelectAccount, { authUser: authUser, client: client, onChange: setSelAccount, value: selAccount })),
|
|
44256
|
+
React__default.createElement(Label, { label: selProject ? selProject.name : 'Project' },
|
|
44257
|
+
React__default.createElement(SelectProject, { authUser: authUser, client: client, onChange: setSelProject, projectOwner: projectOwner, value: selProject })),
|
|
44258
|
+
React__default.createElement(Label, { label: selRecipe && selRecipe.metadata ?
|
|
44259
|
+
selRecipe.metadata.name : 'Recipe' },
|
|
44260
|
+
React__default.createElement(SelectRecipe, { authUser: authUser, client: client, projectOwner: projectOwner, projectName: selProject ? selProject.name : undefined, onChange: setSelRecipe, value: selRecipe })))),
|
|
44261
|
+
selRecipe &&
|
|
44263
44262
|
React__default.createElement(React__default.Fragment, null,
|
|
44264
44263
|
React__default.createElement(TabPanel, { style: {
|
|
44265
44264
|
padding: 8
|
|
@@ -44269,14 +44268,14 @@ var CreateStudy = function (_a) {
|
|
|
44269
44268
|
flexDirection: 'column',
|
|
44270
44269
|
gap: 24
|
|
44271
44270
|
} },
|
|
44272
|
-
|
|
44271
|
+
selRecipe &&
|
|
44273
44272
|
React__default.createElement("h5", { style: {
|
|
44274
44273
|
marginBottom: 0
|
|
44275
|
-
} },
|
|
44274
|
+
} }, selRecipe.metadata.name
|
|
44276
44275
|
.split('-')
|
|
44277
44276
|
.map(function (v) { return v.charAt(0).toUpperCase() + v.slice(1); })
|
|
44278
44277
|
.join(' ')),
|
|
44279
|
-
React__default.createElement(RecipeInputsForm, { client: client, projectOwner: projectOwner, projectName: projectSlug, recipe:
|
|
44278
|
+
React__default.createElement(RecipeInputsForm, { client: client, projectOwner: projectOwner, projectName: projectSlug, recipe: selRecipe, onSubmit: handleCreateStudy, controlledValues: controlledRecipeInputs })))))));
|
|
44280
44279
|
};
|
|
44281
44280
|
|
|
44282
44281
|
// Generated with util/create-component.js
|