pollination-react-io 1.8.1 → 1.8.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/index.js CHANGED
@@ -21688,7 +21688,7 @@ function getHost(key, defaultValue) {
21688
21688
 
21689
21689
  var useArtifacts = function (owner, name, client) {
21690
21690
  var listArtifacts = React.useCallback(function (path) {
21691
- if (!(client === null || client === void 0 ? void 0 : client.artifacts))
21691
+ if (!client)
21692
21692
  return;
21693
21693
  // let key: string[] | undefined = undefined
21694
21694
  // if (path) {
@@ -21701,22 +21701,22 @@ var useArtifacts = function (owner, name, client) {
21701
21701
  perPage: 50,
21702
21702
  path: path
21703
21703
  }).then(function (r) { return r.data; });
21704
- }, [client.artifacts, owner, name]);
21704
+ }, [client, owner, name]);
21705
21705
  var downloadArtifact = React.useCallback(function (path) {
21706
- if (!(client === null || client === void 0 ? void 0 : client.artifacts))
21706
+ if (!client)
21707
21707
  return;
21708
21708
  return client.artifacts.downloadArtifact({
21709
21709
  owner: owner,
21710
21710
  name: name,
21711
21711
  path: path
21712
21712
  }).then(function (r) { return r.data; });
21713
- }, [client.artifacts, owner, name]);
21713
+ }, [client, owner, name]);
21714
21714
  var deleteArtifact = React.useCallback(function (path) { return __awaiter(void 0, void 0, void 0, function () {
21715
21715
  var key;
21716
21716
  return __generator(this, function (_a) {
21717
21717
  switch (_a.label) {
21718
21718
  case 0:
21719
- if (!(client === null || client === void 0 ? void 0 : client.artifacts))
21719
+ if (!client)
21720
21720
  return [2 /*return*/];
21721
21721
  key = undefined;
21722
21722
  if (path) {
@@ -21732,13 +21732,13 @@ var useArtifacts = function (owner, name, client) {
21732
21732
  return [2 /*return*/];
21733
21733
  }
21734
21734
  });
21735
- }); }, [client.artifacts, owner, name]);
21735
+ }); }, [client, owner, name]);
21736
21736
  var uploadArtifact = React.useCallback(function (folderRoot, file) { return __awaiter(void 0, void 0, void 0, function () {
21737
21737
  var filePath, rootKey, uploadKey, result, _a, url, fields, payload;
21738
21738
  return __generator(this, function (_b) {
21739
21739
  switch (_b.label) {
21740
21740
  case 0:
21741
- if (!(client === null || client === void 0 ? void 0 : client.artifacts))
21741
+ if (!client)
21742
21742
  return [2 /*return*/];
21743
21743
  filePath = file.path || file.name;
21744
21744
  if (!filePath) {
@@ -21778,7 +21778,7 @@ var useArtifacts = function (owner, name, client) {
21778
21778
  return [2 /*return*/, result.data];
21779
21779
  }
21780
21780
  });
21781
- }); }, [client.artifacts, owner, name]);
21781
+ }); }, [client, owner, name]);
21782
21782
  return {
21783
21783
  listArtifacts: listArtifacts,
21784
21784
  deleteArtifact: deleteArtifact,
@@ -34492,7 +34492,6 @@ var InputDescription = function (_a) {
34492
34492
  width: '100%',
34493
34493
  color: 'var(--slate12)',
34494
34494
  fontSize: '0.8rem',
34495
- textAlign: 'end',
34496
34495
  gap: 4
34497
34496
  } },
34498
34497
  children,
@@ -35610,7 +35609,7 @@ var Label = function (_a) {
35610
35609
  justifyContent: 'flex-start',
35611
35610
  width: '100%'
35612
35611
  } },
35613
- React__default["default"].createElement("label", { htmlFor: name !== null && name !== void 0 ? name : (typeof label === 'string' && slugify(label, { lower: true })), style: __assign$3({ background: 'var(--background)', borderRadius: 4, width: 'fit-content', transform: 'translate(30px, 6px)', zIndex: 100, fontSize: '0.8rem', color: 'var(--primary)', padding: '0px 4px' }, style) }, label)),
35612
+ React__default["default"].createElement("label", { htmlFor: name !== null && name !== void 0 ? name : (typeof label === 'string' && slugify(label, { lower: true })), style: __assign$3({ background: 'var(--background)', borderRadius: 4, width: 'fit-content', transform: 'translate(30px, 6px)', zIndex: 100, fontSize: '0.8rem', color: 'var(--primary)', fill: 'var(--primary)', padding: '0px 4px', marginBottom: 0 }, style) }, label)),
35614
35613
  children));
35615
35614
  };
35616
35615
 
@@ -39509,6 +39508,8 @@ var SelectCloudArtifacts = function (_a) {
39509
39508
  var _g = React.useState(), selArtifact = _g[0], setSelArtifact = _g[1];
39510
39509
  var folderNavRef = React.useRef(false);
39511
39510
  React.useEffect(function () {
39511
+ if (!client)
39512
+ return;
39512
39513
  setLoading(true);
39513
39514
  listArtifacts(path)
39514
39515
  .then(function (facts) {
@@ -39518,7 +39519,7 @@ var SelectCloudArtifacts = function (_a) {
39518
39519
  setArtifacts({ folders: folders, files: files });
39519
39520
  })
39520
39521
  .finally(function () { return setLoading(false); });
39521
- }, [listArtifacts, path]);
39522
+ }, [client, listArtifacts, path]);
39522
39523
  React.useEffect(function () {
39523
39524
  if (!selArtifact)
39524
39525
  return;
@@ -39692,10 +39693,11 @@ var generateSchema = function (inputs) {
39692
39693
  });
39693
39694
  };
39694
39695
  var RecipeInputsForm = function (_a) {
39696
+ var _b;
39695
39697
  var recipe = _a.recipe, onSubmit = _a.onSubmit, disabled = _a.disabled, projectName = _a.projectName, projectOwner = _a.projectOwner, client = _a.client;
39696
- var _b = React.useState(false), loading = _b[0], setLoading = _b[1];
39698
+ var _c = React.useState(false), loading = _c[0], setLoading = _c[1];
39697
39699
  var schema = generateSchema(recipe.inputs);
39698
- var _c = useForm({
39700
+ var _d = useForm({
39699
39701
  // @ts-ignore
39700
39702
  defaultValues: recipe.inputs.reduce(function (p, c) {
39701
39703
  var _a;
@@ -39704,7 +39706,7 @@ var RecipeInputsForm = function (_a) {
39704
39706
  }, {}),
39705
39707
  resolver: Oe(schema),
39706
39708
  mode: 'all'
39707
- }), control = _c.control, register = _c.register, handleSubmit = _c.handleSubmit, reset = _c.reset, getValues = _c.getValues, _d = _c.formState, errors = _d.errors, isValid = _d.isValid, isSubmitSuccessful = _d.isSubmitSuccessful; _c.getFieldState;
39709
+ }), control = _d.control, register = _d.register, handleSubmit = _d.handleSubmit, reset = _d.reset, resetField = _d.resetField; _d.setValue; var _e = _d.formState, errors = _e.errors, isValid = _e.isValid, isSubmitSuccessful = _e.isSubmitSuccessful;
39708
39710
  React.useEffect(function () {
39709
39711
  if (isSubmitSuccessful) {
39710
39712
  reset();
@@ -39737,9 +39739,6 @@ var RecipeInputsForm = function (_a) {
39737
39739
  });
39738
39740
  }
39739
39741
  };
39740
- // console.log(errors)
39741
- // console.log(isValid)
39742
- // console.log(watch())
39743
39742
  var groups = recipe.inputs.reduce(function (p, c) {
39744
39743
  if (c.required) {
39745
39744
  p[0].push(c);
@@ -39750,7 +39749,9 @@ var RecipeInputsForm = function (_a) {
39750
39749
  return p;
39751
39750
  }, [[], []]);
39752
39751
  return (React__default["default"].createElement(Tabs, { forceRenderTabPanel: true },
39753
- React__default["default"].createElement(TabList, null,
39752
+ React__default["default"].createElement(TabList, { style: {
39753
+ flex: 1
39754
+ } },
39754
39755
  React__default["default"].createElement(Tab, { key: 'required-tab' }, "Required"),
39755
39756
  React__default["default"].createElement(Tab, { key: 'optional-tab' }, "Optional")),
39756
39757
  React__default["default"].createElement("form", { id: recipe.metadata.name, onSubmit: handleSubmit(_onSubmit), style: {
@@ -39767,11 +39768,10 @@ var RecipeInputsForm = function (_a) {
39767
39768
  flexDirection: 'column',
39768
39769
  gap: 8
39769
39770
  } }, g.map(function (input, i) {
39770
- var _a, _b, _c;
39771
+ var _a, _b, _c, _d;
39771
39772
  return (React__default["default"].createElement($409067139f391064$export$be92b6f5f03c0fe9, { style: {
39772
39773
  display: 'flex',
39773
39774
  flexDirection: 'column',
39774
- justifyContent: 'flex-end',
39775
39775
  fontSize: 'inherit',
39776
39776
  color: 'inherit',
39777
39777
  gap: 2
@@ -39798,7 +39798,7 @@ var RecipeInputsForm = function (_a) {
39798
39798
  cursor: 'pointer',
39799
39799
  padding: 0,
39800
39800
  } },
39801
- React__default["default"].createElement(InfoCircle$1, { style: { fill: 'var(--primary)' } }))) },
39801
+ React__default["default"].createElement(InfoCircle$1, { style: { fill: ((_d = errors[input.name]) === null || _d === void 0 ? void 0 : _d.message) ? 'red' : 'var(--primary)' } }))) },
39802
39802
  React__default["default"].createElement(InputDescription, { helpText: React__default["default"].createElement($409067139f391064$export$7c6e2c02157bb7d2, { className: 'collapse-content' }, input && input.description) }, (function () {
39803
39803
  var _a;
39804
39804
  var inputProps = __assign$3({}, register(input.name, {
@@ -39807,13 +39807,8 @@ var RecipeInputsForm = function (_a) {
39807
39807
  max: input.spec && input.spec.maximum ? "".concat(input.name, " must be at least ").concat(input.spec.minimum) : undefined,
39808
39808
  valueAsNumber: input.type === 'DAGNumberInput' || input.type === 'DAGIntegerInput',
39809
39809
  }));
39810
- var handleReset = function () {
39811
- var _a;
39812
- return reset(__assign$3(__assign$3({}, getValues()), (_a = {}, _a[input.name] = input.default, _a)), {
39813
- keepIsValid: true,
39814
- keepTouched: true,
39815
- });
39816
- };
39810
+ // @ts-ignore
39811
+ var handleReset = function () { return resetField(input.name); };
39817
39812
  switch (input.type) {
39818
39813
  case 'DAGFileInput':
39819
39814
  return React__default["default"].createElement(Controller
@@ -39848,12 +39843,20 @@ var RecipeInputsForm = function (_a) {
39848
39843
  React__default["default"].createElement("div", { style: {
39849
39844
  display: 'flex',
39850
39845
  width: '100%',
39851
- justifyContent: 'center',
39852
- padding: '16px 0px 0px'
39846
+ padding: '16px 0px 0px 8px'
39853
39847
  } },
39854
- React__default["default"].createElement(Button, { type: 'submit', form: recipe.metadata.name, disabled: !isValid || disabled, style: {
39855
- width: 'fit-content',
39856
- }, loading: loading }, "Create Study"))));
39848
+ React__default["default"].createElement(InputDescription, { helpText: isValid ? 'Recipe input is valid!' : ((_b = Object.values(errors)) === null || _b === void 0 ? void 0 : _b.length) > 0 ?
39849
+ React__default["default"].createElement("div", null,
39850
+ React__default["default"].createElement("ul", { style: { padding: 0 } }, Object.entries(errors).map(function (_a) {
39851
+ var key = _a[0], val = _a[1];
39852
+ return (
39853
+ // @ts-ignore
39854
+ React__default["default"].createElement("li", { key: key, style: { color: 'red', fontSize: '0.8rem', listStyle: 'none' } }, "".concat(key, " ").concat(val.message, ".")));
39855
+ }))) :
39856
+ 'Recipe input isn\'t valid yet.' },
39857
+ React__default["default"].createElement(Button, { type: 'submit', form: recipe.metadata.name, disabled: !isValid || disabled, style: {
39858
+ width: 'fit-content',
39859
+ }, loading: loading }, "Create Study")))));
39857
39860
  };
39858
39861
 
39859
39862
  var css_248z = ".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";
@@ -39897,10 +39900,22 @@ var CreateStudy = function (_a) {
39897
39900
  }, [state.recipe]);
39898
39901
  return (React__default["default"].createElement("div", { "data-testid": "CreateProject", style: __assign$3(__assign$3({}, defaultStyle), style) },
39899
39902
  React__default["default"].createElement(Tabs, { selectedIndex: activeTabIndex, onSelect: function (index) { return setActiveTabIndex(index); }, forceRenderTabPanel: true },
39900
- React__default["default"].createElement(TabList, null,
39901
- React__default["default"].createElement(Tab, null, "Select Recipe"),
39903
+ React__default["default"].createElement("div", { style: {
39904
+ display: 'flex',
39905
+ width: '100%',
39906
+ alignItems: 'center',
39907
+ justifyContent: 'space-between'
39908
+ } },
39909
+ React__default["default"].createElement(TabList, { style: {
39910
+ flex: 1
39911
+ } },
39912
+ React__default["default"].createElement(Tab, null, "Select Recipe"),
39913
+ state.recipe &&
39914
+ React__default["default"].createElement(Tab, null, "Recipe Inputs")),
39902
39915
  state.recipe &&
39903
- React__default["default"].createElement(Tab, null, "Recipe Inputs")),
39916
+ React__default["default"].createElement("h5", { style: {
39917
+ marginBottom: 0
39918
+ } }, state.recipe.metadata.name)),
39904
39919
  React__default["default"].createElement(TabPanel, { style: {
39905
39920
  padding: '8px 8px'
39906
39921
  } },