pollination-react-io 1.57.2 → 1.58.1

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,42 @@ 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
+ if (!path)
49432
+ return;
49433
+ return path.split('/').reverse()[0];
49434
+ }, [path]);
49435
+ /**
49436
+ * Read local file as Blob - Panel only
49437
+ */
49438
+ var base64AndFetch = function (path) {
49439
+ if (!path)
49440
+ return;
49441
+ var data = fromFileToBase64(path);
49442
+ var base64Data = data === null || data === void 0 ? void 0 : data.data;
49443
+ if (!base64Data)
49444
+ return;
49445
+ // bas64 mapping
49446
+ var t;
49447
+ switch (extension) {
49448
+ case 'zip':
49449
+ t = 'application/zip';
49450
+ break;
49451
+ case 'hbjson':
49452
+ case 'vsf':
49453
+ t = 'text/plain';
49454
+ default:
49455
+ t = 'text/plain';
49456
+ break;
49457
+ }
49458
+ fetchAndSet("data:".concat(t, ";base64,").concat(base64Data));
49459
+ };
49460
+ var isPanel = React.useMemo(function () { return checkPollinationPanel(); }, []);
49427
49461
  React.useEffect(function () {
49428
49462
  if (isCloud) {
49429
49463
  // Generate Blob on click
@@ -49432,8 +49466,15 @@ var FileCard = function (_a) {
49432
49466
  .catch(function () { return onClicked({ label: label, path: path, file: undefined, description: description, runId: runId }); });
49433
49467
  }
49434
49468
  else {
49435
- // TODO: Local later...
49436
- onClicked({ label: label, path: path, file: currFile, description: description, runId: runId });
49469
+ if (!isPanel) {
49470
+ setIsInactive(true);
49471
+ setCurrFile(undefined);
49472
+ setCADintegration(undefined);
49473
+ setIsLoading(false);
49474
+ }
49475
+ else {
49476
+ base64AndFetch(path);
49477
+ }
49437
49478
  }
49438
49479
  }, [studyId, runId, label, path]);
49439
49480
  return React__default["default"].createElement("div", { className: isInactive
@@ -49448,7 +49489,7 @@ var FileCard = function (_a) {
49448
49489
  React__default["default"].createElement("div", { style: { float: 'left', margin: '0 8px 0 0' } }, !isLoading ? React__default["default"].createElement("div", { title: !isInactive
49449
49490
  ? 'Open the viewer'
49450
49491
  : 'File is missing. Check run workspace' },
49451
- React__default["default"].createElement("span", { style: { margin: '0 8px 0 0' } }, getFileIcon(18, ((_c = (_b = path.split('/')
49492
+ React__default["default"].createElement("span", { style: { margin: '0 8px 0 0' } }, path && getFileIcon(18, ((_c = (_b = path.split('/')
49452
49493
  .reverse()[0]) === null || _b === void 0 ? void 0 : _b.split('.')) === null || _c === void 0 ? void 0 : _c.pop()) || '')),
49453
49494
  label)
49454
49495
  : React__default["default"].createElement(LoadingIcon, { size: 14 })),
@@ -49515,11 +49556,11 @@ var css_248z$2 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --
49515
49556
  styleInject(css_248z$2);
49516
49557
 
49517
49558
  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];
49559
+ 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;
49560
+ var _c = React.useState([]), currData = _c[0], setCurrData = _c[1];
49561
+ var _d = React.useState([]), currParams = _d[0], setCurrParams = _d[1];
49562
+ var _e = React.useState([]), currFiles = _e[0], setCurrFiles = _e[1];
49563
+ var _f = React.useState([]), currFolders = _f[0], setCurrFolders = _f[1];
49523
49564
  React.useEffect(function () { return setCurrData(inputData); }, [inputData]);
49524
49565
  React.useEffect(function () {
49525
49566
  if (!currData || currData.length == 0)
@@ -49549,11 +49590,11 @@ var RunContent = function (_a) {
49549
49590
  setCurrFiles(files);
49550
49591
  setCurrFolders(folders);
49551
49592
  }, [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]);
49593
+ // const checkIfValidUUID = (str: string): boolean => {
49594
+ // 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
49595
+ // return regexExp.test(str)
49596
+ // }
49597
+ // const isCloud = useMemo(() => checkIfValidUUID(runId), [runId])
49557
49598
  /**
49558
49599
  * Click event handler of the file card
49559
49600
  * @param card File card props
@@ -49581,7 +49622,7 @@ var RunContent = function (_a) {
49581
49622
  currFiles.length > 0 && projectOwner && projectName && client && runId && React__default["default"].createElement("div", { style: { padding: '20px' } },
49582
49623
  React__default["default"].createElement("div", { className: 'cards' }, currFiles.map(function (_a, index) {
49583
49624
  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 });
49625
+ 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
49626
  }))),
49586
49627
  currFolders.length > 0 && React__default["default"].createElement("div", { style: { padding: '20px' } },
49587
49628
  React__default["default"].createElement("div", { className: 'cards' }, currFolders.map(function (_a, index) {
@@ -49597,11 +49638,10 @@ var RunContent = function (_a) {
49597
49638
 
49598
49639
  var RunDetails = function (_a) {
49599
49640
  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];
49641
+ client = _a.client, style = _a.style, getFileCard = _a.getFileCard, getFolderCard = _a.getFolderCard, _b = _a.isCloud, isCloud = _b === void 0 ? true : _b;
49642
+ var _c = React.useState([]), extraInputs = _c[0], setExtraInputs = _c[1];
49643
+ var _d = React.useState([]), recipeInputs = _d[0], setRecipeInputs = _d[1];
49644
+ var _e = React.useState([]), outputs = _e[0], setOutputs = _e[1];
49605
49645
  React.useEffect(function () {
49606
49646
  if (!run)
49607
49647
  return;
@@ -49630,11 +49670,11 @@ var RunDetails = function (_a) {
49630
49670
  }, [run]);
49631
49671
  return (React__default["default"].createElement("div", null,
49632
49672
  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 }),
49673
+ 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
49674
  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 }),
49675
+ 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
49676
  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 })));
49677
+ 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
49678
  };
49639
49679
 
49640
49680
  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}";