pollination-react-io 1.28.6 → 1.30.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.
|
@@ -2,4 +2,5 @@ import { PanelMessageOut } from './types';
|
|
|
2
2
|
export declare const usePollinationPanel: () => {
|
|
3
3
|
getFileBase64: (key?: any, accept?: any) => PanelMessageOut;
|
|
4
4
|
saveFileBase64: (key: string, file: File | Blob, subFolder: string, fileName: string) => Promise<PanelMessageOut>;
|
|
5
|
+
fromFileToBase64: (filePath: string) => PanelMessageOut;
|
|
5
6
|
};
|
package/build/index.esm.js
CHANGED
|
@@ -37948,9 +37948,15 @@ var usePollinationPanel = function () {
|
|
|
37948
37948
|
return;
|
|
37949
37949
|
return panel.GetArtifactAsBase64(key, accept);
|
|
37950
37950
|
}, [panel]);
|
|
37951
|
+
var fromFileToBase64 = useCallback(function (filePath) {
|
|
37952
|
+
if (!panel)
|
|
37953
|
+
return;
|
|
37954
|
+
return panel.FromFileToBase64(filePath);
|
|
37955
|
+
}, [panel]);
|
|
37951
37956
|
return {
|
|
37952
37957
|
getFileBase64: getFileBase64,
|
|
37953
|
-
saveFileBase64: saveFileBase64
|
|
37958
|
+
saveFileBase64: saveFileBase64,
|
|
37959
|
+
fromFileToBase64: fromFileToBase64
|
|
37954
37960
|
};
|
|
37955
37961
|
};
|
|
37956
37962
|
|
|
@@ -40029,8 +40035,13 @@ var useGetGeometry = function () {
|
|
|
40029
40035
|
var host = getHost();
|
|
40030
40036
|
var _a = useState(undefined), geometry = _a[0], setGeometry = _a[1];
|
|
40031
40037
|
var geometryRef = useRef(undefined);
|
|
40038
|
+
var runPreview = function (identifier) {
|
|
40039
|
+
if (typeof window.parent.chrome.webview.hostObjects.sync.geometry.Mark === 'function') {
|
|
40040
|
+
window.parent.chrome.webview.hostObjects.sync.geometry.Mark(identifier);
|
|
40041
|
+
}
|
|
40042
|
+
};
|
|
40032
40043
|
var setReturnVal = useCallback(function (_a, force) {
|
|
40033
|
-
var data = _a.data;
|
|
40044
|
+
var data = _a.data; _a.identifier;
|
|
40034
40045
|
var bytes = new TextEncoder().encode(data);
|
|
40035
40046
|
if (!force && geometryRef.current) {
|
|
40036
40047
|
if (!lodash_isequal(bytes, geometryRef.current)) {
|
|
@@ -40069,6 +40080,7 @@ var useGetGeometry = function () {
|
|
|
40069
40080
|
};
|
|
40070
40081
|
res = window.parent.chrome.webview.hostObjects.sync.geometry.Get(key, selection);
|
|
40071
40082
|
if (res) {
|
|
40083
|
+
runPreview(res.identifier);
|
|
40072
40084
|
setReturnVal(res, force);
|
|
40073
40085
|
}
|
|
40074
40086
|
}, [setReturnVal]);
|
|
@@ -47164,8 +47176,11 @@ var jszip_min = createCommonjsModule(function (module, exports) {
|
|
|
47164
47176
|
var shortDebounce = useDebounce(200);
|
|
47165
47177
|
var ICON_SIZE = 18;
|
|
47166
47178
|
var FilePreview = function (_a) {
|
|
47167
|
-
var projectOwner = _a.projectOwner, projectName = _a.projectName, jobId = _a.jobId, value = _a.value,
|
|
47179
|
+
var projectOwner = _a.projectOwner, projectName = _a.projectName, jobId = _a.jobId, value = _a.value, // cloud controller
|
|
47180
|
+
client = _a.client, inputProps = _a.inputProps, onPreviewChange = _a.onPreviewChange, // Use it for streamlit setComponentValue
|
|
47181
|
+
enableFilePicker = _a.enableFilePicker, localPath = _a.localPath // local controller
|
|
47168
47182
|
;
|
|
47183
|
+
var fromFileToBase64 = usePollinationPanel().fromFileToBase64;
|
|
47169
47184
|
var getExtension = function (fileName) {
|
|
47170
47185
|
if (!fileName)
|
|
47171
47186
|
return;
|
|
@@ -47174,13 +47189,14 @@ var FilePreview = function (_a) {
|
|
|
47174
47189
|
return arr.at(arr.length - 1);
|
|
47175
47190
|
}
|
|
47176
47191
|
};
|
|
47192
|
+
var host = getHost();
|
|
47177
47193
|
var _b = useState(value), selArtifact = _b[0], setSelArtifact = _b[1];
|
|
47194
|
+
var _c = useState(localPath), selFilePath = _c[0], setSelFilePath = _c[1];
|
|
47178
47195
|
var downloadArtifact = useArtifacts(projectOwner, projectName, client).downloadArtifact;
|
|
47179
|
-
var
|
|
47180
|
-
var
|
|
47181
|
-
var
|
|
47196
|
+
var _d = useState(), preview = _d[0], setPreview = _d[1];
|
|
47197
|
+
var _e = useState(), currBlob = _e[0], setCurrBlob = _e[1];
|
|
47198
|
+
var _f = useState(getExtension((value === null || value === void 0 ? void 0 : value.file_name) || getExtension(localPath))), currFileExtension = _f[0], setCurrFileExtension = _f[1];
|
|
47182
47199
|
var allowedFileTypes = ['application/zip', 'text/plain'];
|
|
47183
|
-
var host = getHost();
|
|
47184
47200
|
var parser = {
|
|
47185
47201
|
'text/plain': function (blob) {
|
|
47186
47202
|
var reader = new FileReader();
|
|
@@ -47220,13 +47236,70 @@ var FilePreview = function (_a) {
|
|
|
47220
47236
|
}); });
|
|
47221
47237
|
}
|
|
47222
47238
|
};
|
|
47223
|
-
// Internal onChange
|
|
47239
|
+
// Internal onChange cloud
|
|
47224
47240
|
var onChange = useCallback(function (selArtifact) {
|
|
47225
|
-
// console.log(selArtifact)
|
|
47226
47241
|
setSelArtifact(selArtifact);
|
|
47227
47242
|
!selArtifact && setPreview(undefined);
|
|
47228
47243
|
!selArtifact && setCurrFileExtension(undefined);
|
|
47229
47244
|
}, []);
|
|
47245
|
+
// Internal onChange local
|
|
47246
|
+
var onChangeLocal = useCallback(function (path) {
|
|
47247
|
+
setSelFilePath(path);
|
|
47248
|
+
!selFilePath && setPreview(undefined);
|
|
47249
|
+
!selFilePath && setCurrFileExtension(undefined);
|
|
47250
|
+
}, []);
|
|
47251
|
+
var base64AndFetch = function (path) {
|
|
47252
|
+
if (!path)
|
|
47253
|
+
return;
|
|
47254
|
+
var data = fromFileToBase64(path);
|
|
47255
|
+
var base64Data = data === null || data === void 0 ? void 0 : data.data;
|
|
47256
|
+
if (!base64Data)
|
|
47257
|
+
return;
|
|
47258
|
+
// bas64 mapping
|
|
47259
|
+
var t;
|
|
47260
|
+
switch (getExtension(path)) {
|
|
47261
|
+
case 'zip':
|
|
47262
|
+
t = 'application/zip';
|
|
47263
|
+
break;
|
|
47264
|
+
case 'vsf':
|
|
47265
|
+
t = 'text/plain';
|
|
47266
|
+
}
|
|
47267
|
+
fetchAndSet("data:".concat(t, ";base64,").concat(base64Data), path);
|
|
47268
|
+
};
|
|
47269
|
+
var fetchAndSet = function (url, path) {
|
|
47270
|
+
if (path === void 0) { path = undefined; }
|
|
47271
|
+
fetch(url)
|
|
47272
|
+
.then(function (response) { return response.blob()
|
|
47273
|
+
.then(function (blob) {
|
|
47274
|
+
var t = blob.type;
|
|
47275
|
+
if (!allowedFileTypes.includes(t)) {
|
|
47276
|
+
console.error("Cloud Artifact ".concat(t, " not supported."));
|
|
47277
|
+
setPreview(undefined);
|
|
47278
|
+
setCurrBlob(undefined);
|
|
47279
|
+
setCurrFileExtension(undefined);
|
|
47280
|
+
return;
|
|
47281
|
+
}
|
|
47282
|
+
switch (t) {
|
|
47283
|
+
case 'application/zip':
|
|
47284
|
+
parser['application/zip'](blob);
|
|
47285
|
+
break;
|
|
47286
|
+
case 'text/plain':
|
|
47287
|
+
parser['text/plain'](blob);
|
|
47288
|
+
break;
|
|
47289
|
+
default:
|
|
47290
|
+
setPreview(undefined);
|
|
47291
|
+
setCurrBlob(undefined);
|
|
47292
|
+
setCurrFileExtension(undefined);
|
|
47293
|
+
break;
|
|
47294
|
+
}
|
|
47295
|
+
setCurrBlob(blob);
|
|
47296
|
+
if (path) {
|
|
47297
|
+
setSelFilePath(path);
|
|
47298
|
+
}
|
|
47299
|
+
var ext = getExtension((selArtifact === null || selArtifact === void 0 ? void 0 : selArtifact.file_name) || path);
|
|
47300
|
+
setCurrFileExtension(ext);
|
|
47301
|
+
}); });
|
|
47302
|
+
};
|
|
47230
47303
|
var download = function (blob, fileName) {
|
|
47231
47304
|
var file = new File([blob], fileName);
|
|
47232
47305
|
var a = document.createElement('a');
|
|
@@ -47239,54 +47312,31 @@ var FilePreview = function (_a) {
|
|
|
47239
47312
|
a.click();
|
|
47240
47313
|
};
|
|
47241
47314
|
useEffect(function () {
|
|
47315
|
+
if (enableFilePicker) {
|
|
47316
|
+
base64AndFetch(selFilePath);
|
|
47317
|
+
return;
|
|
47318
|
+
}
|
|
47242
47319
|
downloadArtifact(selArtifact === null || selArtifact === void 0 ? void 0 : selArtifact.key, jobId)
|
|
47243
|
-
.then(
|
|
47244
|
-
|
|
47245
|
-
.then(function (response) { return response.blob()
|
|
47246
|
-
.then(function (blob) {
|
|
47247
|
-
var t = blob.type;
|
|
47248
|
-
if (!allowedFileTypes.includes(t)) {
|
|
47249
|
-
console.error("Cloud Artifact ".concat(t, " not supported."));
|
|
47250
|
-
setPreview(undefined);
|
|
47251
|
-
setCurrBlob(undefined);
|
|
47252
|
-
setCurrFileExtension(undefined);
|
|
47253
|
-
return;
|
|
47254
|
-
}
|
|
47255
|
-
switch (t) {
|
|
47256
|
-
case 'application/zip':
|
|
47257
|
-
parser['application/zip'](blob);
|
|
47258
|
-
break;
|
|
47259
|
-
case 'text/plain':
|
|
47260
|
-
parser['text/plain'](blob);
|
|
47261
|
-
break;
|
|
47262
|
-
default:
|
|
47263
|
-
setPreview(undefined);
|
|
47264
|
-
setCurrBlob(undefined);
|
|
47265
|
-
setCurrFileExtension(undefined);
|
|
47266
|
-
break;
|
|
47267
|
-
}
|
|
47268
|
-
setCurrBlob(blob);
|
|
47269
|
-
var ext = getExtension(selArtifact === null || selArtifact === void 0 ? void 0 : selArtifact.file_name);
|
|
47270
|
-
setCurrFileExtension(ext);
|
|
47271
|
-
}); });
|
|
47272
|
-
});
|
|
47273
|
-
}, [selArtifact, projectOwner, projectName]);
|
|
47320
|
+
.then(fetchAndSet);
|
|
47321
|
+
}, [selArtifact, selFilePath, projectOwner, projectName]);
|
|
47274
47322
|
shortDebounce(function () {
|
|
47275
47323
|
onPreviewChange && onPreviewChange(preview);
|
|
47276
47324
|
}, [onPreviewChange, preview]);
|
|
47277
|
-
// TODO: Add buttons latest part (e.g. download)
|
|
47278
47325
|
return (React__default.createElement(React__default.Fragment, null,
|
|
47279
|
-
!value && React__default.createElement(SelectCloudArtifacts, { projectOwner: projectOwner, projectName: projectName, value: selArtifact, hidden: false, client: client, jobId: jobId, fileNameMatch: typeof inputProps.accept === 'string'
|
|
47326
|
+
!value && !enableFilePicker && React__default.createElement(SelectCloudArtifacts, { projectOwner: projectOwner, projectName: projectName, value: selArtifact, hidden: false, client: client, jobId: jobId, fileNameMatch: typeof inputProps.accept === 'string'
|
|
47280
47327
|
? ".*(".concat(inputProps.accept.replace(/\./g, '').split(', ').join('$|'), "$)")
|
|
47281
47328
|
: undefined, onChange: onChange }),
|
|
47282
|
-
|
|
47329
|
+
!localPath && enableFilePicker && React__default.createElement(SelectLocalArtifactNative, { onChange: onChangeLocal, value: selFilePath, buttonLabel: "Select ".concat(inputProps.accept.split(',').length > 1 ?
|
|
47330
|
+
'any of' : 'an', " ").concat(inputProps.accept, " ").concat(inputProps.accept.split(',').length > 1 ? 'file types' : 'file', "."), fileMatchPattern: "File types ".concat(inputProps.accept, "|*").concat(inputProps.accept.split(', ').join(';*')) }),
|
|
47331
|
+
(selArtifact || selFilePath) && //
|
|
47283
47332
|
React__default.createElement(React__default.Fragment, null,
|
|
47333
|
+
(value || localPath) ? undefined : React__default.createElement("br", null),
|
|
47284
47334
|
(host !== 'web' && currFileExtension === 'vsf'
|
|
47285
47335
|
&& typeof preview === 'string') &&
|
|
47286
|
-
React__default.createElement(SendResults, { results: JSON.parse(preview), defaultKey: selArtifact.file_name, buttonLabel: 'Result Preview' }),
|
|
47336
|
+
React__default.createElement(SendResults, { results: JSON.parse(preview), defaultKey: (selArtifact === null || selArtifact === void 0 ? void 0 : selArtifact.file_name) || (selFilePath === null || selFilePath === void 0 ? void 0 : selFilePath.replace(/^.*[\\\/]/, '')), buttonLabel: 'Result Preview' }),
|
|
47287
47337
|
(host !== 'web' && currFileExtension === 'zip') &&
|
|
47288
47338
|
preview && typeof preview === 'string' &&
|
|
47289
|
-
React__default.createElement(SendResults, { results: JSON.parse(preview), defaultKey: selArtifact.file_name, buttonLabel: 'Result Preview' }),
|
|
47339
|
+
React__default.createElement(SendResults, { results: JSON.parse(preview), defaultKey: (selArtifact === null || selArtifact === void 0 ? void 0 : selArtifact.file_name) || (selFilePath === null || selFilePath === void 0 ? void 0 : selFilePath.replace(/^.*[\\\/]/, '')), buttonLabel: 'Result Preview' }),
|
|
47290
47340
|
(host === 'web') &&
|
|
47291
47341
|
React__default.createElement(Button, { type: 'button', onClick: function () { return download(currBlob, selArtifact.file_name); }, disabled: !currBlob, style: {
|
|
47292
47342
|
width: 'fit-content',
|