pollination-react-io 1.57.2 → 1.58.0

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
@@ -49351,26 +49351,27 @@ var CADtypeEnum;
49351
49351
  })(CADtypeEnum || (CADtypeEnum = {}));
49352
49352
  var FileCard = function (_a) {
49353
49353
  var _b, _c;
49354
- var projectOwner = _a.projectOwner, projectName = _a.projectName, client = _a.client, studyId = _a.studyId, runId = _a.runId, label = _a.label, path = _a.path, file = _a.file, description = _a.description, onClicked = _a.onClicked;
49354
+ var projectOwner = _a.projectOwner, projectName = _a.projectName, client = _a.client, studyId = _a.studyId, runId = _a.runId, label = _a.label, path = _a.path, file = _a.file, description = _a.description, onClicked = _a.onClicked, _d = _a.isCloud, isCloud = _d === void 0 ? true : _d;
49355
49355
  var host = getHost();
49356
- var _d = React.useState(false), open = _d[0], setOpen = _d[1];
49357
- var _e = React.useState(false), over = _e[0], setOver = _e[1];
49358
- var _f = React.useState(true), isLoading = _f[0], setIsLoading = _f[1];
49359
- var _g = React.useState(false), isInactive = _g[0], setIsInactive = _g[1];
49356
+ var fromFileToBase64 = usePollinationPanel().fromFileToBase64;
49357
+ var _e = React.useState(false), open = _e[0], setOpen = _e[1];
49358
+ var _f = React.useState(false), over = _f[0], setOver = _f[1];
49359
+ var _g = React.useState(true), isLoading = _g[0], setIsLoading = _g[1];
49360
+ var _h = React.useState(false), isInactive = _h[0], setIsInactive = _h[1];
49360
49361
  // Data to use for CAD injections
49361
- var _h = React.useState(), CADdata = _h[0], setCADdata = _h[1];
49362
+ var _j = React.useState(), CADdata = _j[0], setCADdata = _j[1];
49362
49363
  // File to send to parent
49363
- var _j = React.useState(), currFile = _j[0], setCurrFile = _j[1];
49364
- /**
49365
- * Check if run id is a valid UUID or file path (Local sim)
49366
- * @param str run id
49367
- * @returns true or false
49368
- */
49369
- var checkIfValidUUID = function (str) {
49370
- var regexExp = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/gi;
49371
- return regexExp.test(str);
49372
- };
49373
- var isCloud = React.useMemo(function () { return checkIfValidUUID(runId); }, [runId]);
49364
+ var _k = React.useState(), currFile = _k[0], setCurrFile = _k[1];
49365
+ // /**
49366
+ // * Check if run id is a valid UUID or file path (Local sim)
49367
+ // * @param str run id
49368
+ // * @returns true or false
49369
+ // */
49370
+ // const checkIfValidUUID = (str: string): boolean => {
49371
+ // const regexExp = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/gi
49372
+ // return regexExp.test(str)
49373
+ // }
49374
+ // const isCloud = useMemo(() => checkIfValidUUID(runId), [runId])
49374
49375
  var downloadArtifact = useArtifacts(projectOwner, projectName, client).downloadArtifact;
49375
49376
  var setCADintegration = React.useCallback(function (file) {
49376
49377
  if (!file)
@@ -49421,9 +49422,39 @@ var FileCard = function (_a) {
49421
49422
  setCADintegration(blob);
49422
49423
  });
49423
49424
  })
49424
- .catch(function () { })
49425
+ .catch(function (err) {
49426
+ console.error(err);
49427
+ })
49425
49428
  .finally(function () { return setIsLoading(false); });
49426
49429
  };
49430
+ var extension = React.useMemo(function () {
49431
+ return path.split('/').reverse()[0];
49432
+ }, [path]);
49433
+ /**
49434
+ * Read local file as Blob - Panel only
49435
+ */
49436
+ var base64AndFetch = function (path) {
49437
+ if (!path)
49438
+ return;
49439
+ var data = fromFileToBase64(path);
49440
+ var base64Data = data === null || data === void 0 ? void 0 : data.data;
49441
+ if (!base64Data)
49442
+ return;
49443
+ // bas64 mapping
49444
+ var t;
49445
+ switch (extension) {
49446
+ case 'zip':
49447
+ t = 'application/zip';
49448
+ break;
49449
+ case 'hbjson':
49450
+ case 'vsf':
49451
+ t = 'text/plain';
49452
+ default:
49453
+ t = 'text/plain';
49454
+ break;
49455
+ }
49456
+ fetchAndSet("data:".concat(t, ";base64,").concat(base64Data));
49457
+ };
49427
49458
  React.useEffect(function () {
49428
49459
  if (isCloud) {
49429
49460
  // Generate Blob on click
@@ -49432,8 +49463,15 @@ var FileCard = function (_a) {
49432
49463
  .catch(function () { return onClicked({ label: label, path: path, file: undefined, description: description, runId: runId }); });
49433
49464
  }
49434
49465
  else {
49435
- // TODO: Local later...
49436
- onClicked({ label: label, path: path, file: currFile, description: description, runId: runId });
49466
+ var isPanel = checkPollinationPanel();
49467
+ if (!isPanel) {
49468
+ setIsInactive(true);
49469
+ setCurrFile(undefined);
49470
+ setCADintegration(undefined);
49471
+ setIsLoading(false);
49472
+ return;
49473
+ }
49474
+ base64AndFetch(path);
49437
49475
  }
49438
49476
  }, [studyId, runId, label, path]);
49439
49477
  return React__default["default"].createElement("div", { className: isInactive
@@ -49515,11 +49553,11 @@ var css_248z$2 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --
49515
49553
  styleInject(css_248z$2);
49516
49554
 
49517
49555
  var RunContent = function (_a) {
49518
- var inputData = _a.inputData, projectOwner = _a.projectOwner, projectName = _a.projectName, studyId = _a.studyId, runId = _a.runId, client = _a.client, title = _a.title, style = _a.style, getFileCard = _a.getFileCard, getFolderCard = _a.getFolderCard;
49519
- var _b = React.useState([]), currData = _b[0], setCurrData = _b[1];
49520
- var _c = React.useState([]), currParams = _c[0], setCurrParams = _c[1];
49521
- var _d = React.useState([]), currFiles = _d[0], setCurrFiles = _d[1];
49522
- var _e = React.useState([]), currFolders = _e[0], setCurrFolders = _e[1];
49556
+ var inputData = _a.inputData, projectOwner = _a.projectOwner, projectName = _a.projectName, studyId = _a.studyId, runId = _a.runId, client = _a.client, title = _a.title, style = _a.style, getFileCard = _a.getFileCard, getFolderCard = _a.getFolderCard, _b = _a.isCloud, isCloud = _b === void 0 ? true : _b;
49557
+ var _c = React.useState([]), currData = _c[0], setCurrData = _c[1];
49558
+ var _d = React.useState([]), currParams = _d[0], setCurrParams = _d[1];
49559
+ var _e = React.useState([]), currFiles = _e[0], setCurrFiles = _e[1];
49560
+ var _f = React.useState([]), currFolders = _f[0], setCurrFolders = _f[1];
49523
49561
  React.useEffect(function () { return setCurrData(inputData); }, [inputData]);
49524
49562
  React.useEffect(function () {
49525
49563
  if (!currData || currData.length == 0)
@@ -49549,11 +49587,11 @@ var RunContent = function (_a) {
49549
49587
  setCurrFiles(files);
49550
49588
  setCurrFolders(folders);
49551
49589
  }, [currData]);
49552
- var checkIfValidUUID = function (str) {
49553
- var regexExp = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/gi;
49554
- return regexExp.test(str);
49555
- };
49556
- var isCloud = React.useMemo(function () { return checkIfValidUUID(runId); }, [runId]);
49590
+ // const checkIfValidUUID = (str: string): boolean => {
49591
+ // const regexExp = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/gi
49592
+ // return regexExp.test(str)
49593
+ // }
49594
+ // const isCloud = useMemo(() => checkIfValidUUID(runId), [runId])
49557
49595
  /**
49558
49596
  * Click event handler of the file card
49559
49597
  * @param card File card props
@@ -49581,7 +49619,7 @@ var RunContent = function (_a) {
49581
49619
  currFiles.length > 0 && projectOwner && projectName && client && runId && React__default["default"].createElement("div", { style: { padding: '20px' } },
49582
49620
  React__default["default"].createElement("div", { className: 'cards' }, currFiles.map(function (_a, index) {
49583
49621
  var label = _a.label, path = _a.path, description = _a.description;
49584
- return React__default["default"].createElement(FileCard, { projectOwner: projectOwner, projectName: projectName, studyId: studyId, runId: runId, client: client, key: "filecard-".concat(index), label: label, path: path, description: description, onClicked: onFileClicked });
49622
+ return React__default["default"].createElement(FileCard, { projectOwner: projectOwner, projectName: projectName, studyId: studyId, runId: runId, client: client, key: "filecard-".concat(index), label: label, path: path, description: description, onClicked: onFileClicked, isCloud: isCloud });
49585
49623
  }))),
49586
49624
  currFolders.length > 0 && React__default["default"].createElement("div", { style: { padding: '20px' } },
49587
49625
  React__default["default"].createElement("div", { className: 'cards' }, currFolders.map(function (_a, index) {
@@ -49597,11 +49635,10 @@ var RunContent = function (_a) {
49597
49635
 
49598
49636
  var RunDetails = function (_a) {
49599
49637
  var projectName = _a.projectName, projectOwner = _a.projectOwner, run = _a.run, // Cloud and Local
49600
- runId = _a.runId, // TODO: delete it if RUN JSON has the field
49601
- client = _a.client, style = _a.style, getFileCard = _a.getFileCard, getFolderCard = _a.getFolderCard;
49602
- var _b = React.useState([]), extraInputs = _b[0], setExtraInputs = _b[1];
49603
- var _c = React.useState([]), recipeInputs = _c[0], setRecipeInputs = _c[1];
49604
- var _d = React.useState([]), outputs = _d[0], setOutputs = _d[1];
49638
+ client = _a.client, style = _a.style, getFileCard = _a.getFileCard, getFolderCard = _a.getFolderCard, _b = _a.isCloud, isCloud = _b === void 0 ? true : _b;
49639
+ var _c = React.useState([]), extraInputs = _c[0], setExtraInputs = _c[1];
49640
+ var _d = React.useState([]), recipeInputs = _d[0], setRecipeInputs = _d[1];
49641
+ var _e = React.useState([]), outputs = _e[0], setOutputs = _e[1];
49605
49642
  React.useEffect(function () {
49606
49643
  if (!run)
49607
49644
  return;
@@ -49630,11 +49667,11 @@ var RunDetails = function (_a) {
49630
49667
  }, [run]);
49631
49668
  return (React__default["default"].createElement("div", null,
49632
49669
  outputs &&
49633
- React__default["default"].createElement(RunContent, { title: 'Outputs', inputData: outputs, projectName: projectName, projectOwner: projectOwner, studyId: run.status.job_id, runId: run.id || runId, client: client, style: style, getFileCard: getFileCard, getFolderCard: getFolderCard }),
49670
+ React__default["default"].createElement(RunContent, { title: 'Outputs', inputData: outputs, projectName: projectName, projectOwner: projectOwner, studyId: run.status.job_id, runId: run.id, client: client, style: style, getFileCard: getFileCard, getFolderCard: getFolderCard, isCloud: isCloud }),
49634
49671
  recipeInputs &&
49635
- React__default["default"].createElement(RunContent, { title: 'Inputs', inputData: recipeInputs, projectName: projectName, projectOwner: projectOwner, studyId: run.status.job_id, runId: run.id || runId, client: client, style: style, getFileCard: getFileCard, getFolderCard: getFolderCard }),
49672
+ React__default["default"].createElement(RunContent, { title: 'Inputs', inputData: recipeInputs, projectName: projectName, projectOwner: projectOwner, studyId: run.status.job_id, runId: run.id, client: client, style: style, getFileCard: getFileCard, getFolderCard: getFolderCard, isCloud: isCloud }),
49636
49673
  extraInputs && extraInputs.length > 0 &&
49637
- React__default["default"].createElement(RunContent, { title: 'Extra Inputs', inputData: extraInputs, projectName: projectName, projectOwner: projectOwner, studyId: run.status.job_id, runId: run.id || runId, client: client, style: style, getFileCard: getFileCard, getFolderCard: getFolderCard })));
49674
+ React__default["default"].createElement(RunContent, { title: 'Extra Inputs', inputData: extraInputs, projectName: projectName, projectOwner: projectOwner, studyId: run.status.job_id, runId: run.id, client: client, style: style, getFileCard: getFileCard, getFolderCard: getFolderCard, isCloud: isCloud })));
49638
49675
  };
49639
49676
 
49640
49677
  var css_248z$1 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary1: #cceefe;\n --primary0: #e6f7ff;\n --secondary: #fff566;\n --primary3: #000;\n --success: #46A758;\n --warning: #F76809;\n --danger: #FF4616;\n /* radix-ui/colors */\n --slate1: hsl(206, 30.0%, 98.8%);\n --slate2: hsl(210, 16.7%, 97.6%);\n --slate3: hsl(209, 13.3%, 95.3%);\n --slate4: hsl(209, 12.2%, 93.2%);\n --slate5: hsl(208, 11.7%, 91.1%);\n --slate6: hsl(208, 11.3%, 88.9%);\n --slate7: hsl(207, 11.1%, 85.9%);\n --slate8: hsl(205, 10.7%, 78.0%);\n --slate9: hsl(206, 6.0%, 56.1%);\n --slate10: hsl(206, 5.8%, 52.3%);\n --slate11: hsl(206, 6.0%, 43.5%);\n --slate12: hsl(206, 24.0%, 9.0%);\n}\n\n@keyframes spin {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.spin {\n animation: spin 1s linear 0s infinite;\n}\n\n@keyframes Animation {\n 0% {\n background-position: 200%;\n }\n 50% {\n background-position: 100%;\n }\n 100% {\n background-position: 0%;\n }\n}\n.loading {\n background: linear-gradient(45deg, transparent, var(--primary), 12%, transparent);\n background-size: 200%;\n animation: Animation 3s ease infinite;\n}\n\n@keyframes open {\n from {\n height: 0;\n }\n to {\n height: var(--radix-collapsible-content-height);\n }\n}\n@keyframes close {\n from {\n height: var(--radix-collapsible-content-height);\n }\n to {\n height: 0;\n }\n}\n.collapse-content {\n overflow: hidden;\n font-size: inherit;\n color: inherit;\n}\n\n.collapse-content[data-state=open] {\n animation: open 300ms ease-out;\n}\n\n.collapse-content[data-state=closed] {\n animation: close 300ms ease-out;\n}\n\n.run-progress {\n grid-area: runprogress;\n font-size: 0.9rem;\n text-align: left !important;\n}\n\n.run-link {\n grid-area: runlink;\n text-align: right !important;\n font-size: 1rem;\n white-space: nowrap;\n}\n\n.run-details {\n grid-area: rundetails;\n font-size: 0.9rem;\n}\n\n.study-run-container {\n display: grid;\n grid-template-areas: \"runprogress runprogress runprogress runprogress runprogress runlink\" \"rundetails rundetails rundetails rundetails rundetails rundetails\";\n gap: 0.35rem;\n border: 0.1rem solid;\n align-items: center;\n padding: 0.75rem;\n transition: box-shadow 0.3s ease 0s, border-color 0.3s ease 0s;\n grid-template-rows: max-content auto;\n border-radius: 6px;\n line-height: 1.5;\n}\n\n.study-run-container:hover {\n cursor: pointer;\n box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 2px -2px, rgba(0, 0, 0, 0.12) 0px 3px 6px 0px, rgba(0, 0, 0, 0.09) 0px 5px 12px 4px;\n}\n\n.run-navigator {\n display: grid;\n grid-template-columns: min-content auto min-content min-content;\n grid-auto-rows: auto;\n align-items: center;\n grid-gap: 0.9rem;\n}\n\n.run-pg-input {\n margin: 0 4px 0 4px;\n padding: 8px 8px;\n text-align: center;\n color: rgba(0, 0, 0, 0.8509803922);\n width: min-content;\n border-radius: 2px;\n font-size: 12px;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.container-scroll {\n display: inline-flex;\n flex-direction: row;\n overflow-x: auto;\n width: 100%;\n}\n\n.blink-effect {\n animation: blinker 5s linear infinite;\n}\n\n@keyframes blinker {\n 50% {\n border: 0.1rem solid white;\n }\n}";