@linkdlab/funcnodes_react_flow 0.2.2 → 0.2.3
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/dist/esm/index.esm.js +38 -18
- package/dist/types/frontend/datarenderer/default_preview_renderer.d.ts +7 -1
- package/dist/types/frontend/datarenderer/default_preview_renderer.d.ts.map +1 -1
- package/dist/types/frontend/datarenderer/rendermappings.d.ts +9 -0
- package/dist/types/frontend/datarenderer/rendermappings.d.ts.map +1 -1
- package/dist/types/frontend/funcnodesreactflow/index.d.ts.map +1 -1
- package/dist/types/frontend/header/index.d.ts.map +1 -1
- package/dist/types/frontend/node/io/default_input_renderer.d.ts.map +1 -1
- package/dist/types/frontend/node/io/default_output_render.d.ts +2 -1
- package/dist/types/frontend/node/io/default_output_render.d.ts.map +1 -1
- package/dist/types/frontend/node/io/nodeinput.d.ts.map +1 -1
- package/dist/types/frontend/node/node.d.ts.map +1 -1
- package/dist/types/frontend/utils/select.d.ts.map +1 -1
- package/dist/types/funcnodes/funcnodesworker.d.ts +5 -0
- package/dist/types/funcnodes/funcnodesworker.d.ts.map +1 -1
- package/dist/types/funcnodes/websocketworker.d.ts.map +1 -1
- package/dist/types/funcnodes/workermanager.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/plugin/index.d.ts +1 -1
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/plugin/rendenderer.d.ts +0 -1
- package/dist/types/plugin/rendenderer.d.ts.map +1 -1
- package/dist/types/states/fnrfzst.d.ts.map +1 -1
- package/dist/types/states/fnrfzst.t.d.ts +6 -0
- package/dist/types/states/fnrfzst.t.d.ts.map +1 -1
- package/dist/types/states/node.d.ts.map +1 -1
- package/dist/types/states/node.t.d.ts +3 -3
- package/dist/types/states/node.t.d.ts.map +1 -1
- package/dist/types/states/nodeio.t.d.ts +1 -1
- package/dist/types/states/nodeio.t.d.ts.map +1 -1
- package/dist/types/utils/debugger.d.ts +5 -0
- package/dist/types/utils/debugger.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +2 -2
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/logger.d.ts +25 -0
- package/dist/types/utils/logger.d.ts.map +1 -0
- package/dist/types/utils/objects.d.ts +11 -1
- package/dist/types/utils/objects.d.ts.map +1 -1
- package/dist/umd/index.umd.js +40 -18
- package/package.json +1 -1
package/dist/umd/index.umd.js
CHANGED
|
@@ -2617,7 +2617,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2617
2617
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2618
2618
|
|
|
2619
2619
|
"use strict";
|
|
2620
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Base64ImageOutput: () => (/* binding */ Base64ImageOutput),\n/* harmony export */ DictOutput: () => (/* binding */ DictOutput),\n/* harmony export */ SVGImageOutput: () => (/* binding */ SVGImageOutput),\n/* harmony export */ SingleValueOutput: () => (/* binding */ SingleValueOutput),\n/* harmony export */ TableOutput: () => (/* binding */ TableOutput)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_jsondata__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/jsondata */ \"./src/frontend/utils/jsondata.tsx\");\n/* harmony import */ var _utils_table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/table */ \"./src/frontend/utils/table.tsx\");\n/* harmony import */ var _images__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./images */ \"./src/frontend/datarenderer/images.tsx\");\n\n\n\n\nvar Base64ImageOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = \"\";\n }\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_images__WEBPACK_IMPORTED_MODULE_3__.Base64ImageRenderer, { value: value });\n};\nvar SVGImageOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = \"\";\n }\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_images__WEBPACK_IMPORTED_MODULE_3__.SVGImageRenderer, { value: value });\n};\nvar SingleValueOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = \"\";\n }\n else {\n value = JSON.stringify(io.value).replace(/\\\\n/g, \"\\n\"); //respect \"\\n\" in strings\n }\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"pre\", null, value)));\n};\nvar TableOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = [];\n }\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_utils_table__WEBPACK_IMPORTED_MODULE_2__.SortableTable, { tabledata: value });\n};\nvar DictOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value === undefined)\n value = io.value;\n if (value === undefined) {\n value = {};\n }\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_utils_jsondata__WEBPACK_IMPORTED_MODULE_1__[\"default\"], { data: value });\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/datarenderer/default_preview_renderer.tsx?");
|
|
2620
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Base64BytesInLineOutput: () => (/* binding */ Base64BytesInLineOutput),\n/* harmony export */ Base64BytesOutput: () => (/* binding */ Base64BytesOutput),\n/* harmony export */ Base64ImageOutput: () => (/* binding */ Base64ImageOutput),\n/* harmony export */ DictOutput: () => (/* binding */ DictOutput),\n/* harmony export */ SVGImageOutput: () => (/* binding */ SVGImageOutput),\n/* harmony export */ SingleValueOutput: () => (/* binding */ SingleValueOutput),\n/* harmony export */ TableOutput: () => (/* binding */ TableOutput)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_jsondata__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/jsondata */ \"./src/frontend/utils/jsondata.tsx\");\n/* harmony import */ var _utils_table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/table */ \"./src/frontend/utils/table.tsx\");\n/* harmony import */ var _images__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./images */ \"./src/frontend/datarenderer/images.tsx\");\n\n\n\n\nvar Base64ImageOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = \"\";\n }\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_images__WEBPACK_IMPORTED_MODULE_3__.Base64ImageRenderer, { value: value });\n};\nvar SVGImageOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = \"\";\n }\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_images__WEBPACK_IMPORTED_MODULE_3__.SVGImageRenderer, { value: value });\n};\nvar SingleValueOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = \"\";\n }\n else {\n value = JSON.stringify(io.value).replace(/\\\\n/g, \"\\n\"); //respect \"\\n\" in strings\n }\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"pre\", null, value)));\n};\nvar Base64BytesInLineOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = \"\";\n }\n else {\n value = JSON.stringify(io.value).replace(/\\\\n/g, \"\\n\"); //respect \"\\n\" in strings\n }\n var length = Math.round((3 * value.length) / 4); // 3/4 is the ratio of base64 encoding\n return \"Bytes(\".concat(length, \")\");\n};\nvar Base64BytesOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = \"\";\n }\n // chack if the value is a base64 string\n if (typeof value !== \"string\" || value.length % 4 !== 0)\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, value);\n var length = Math.round((3 * value.length) / 4); // 3/4 is the ratio of base64 encoding\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"pre\", null,\n \"Bytes(\",\n length,\n \")\")));\n};\nvar TableOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = [];\n }\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_utils_table__WEBPACK_IMPORTED_MODULE_2__.SortableTable, { tabledata: value });\n};\nvar DictOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value === undefined)\n value = io.value;\n if (value === undefined) {\n value = {};\n }\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_utils_jsondata__WEBPACK_IMPORTED_MODULE_1__[\"default\"], { data: value });\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/datarenderer/default_preview_renderer.tsx?");
|
|
2621
2621
|
|
|
2622
2622
|
/***/ }),
|
|
2623
2623
|
|
|
@@ -2639,7 +2639,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2639
2639
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2640
2640
|
|
|
2641
2641
|
"use strict";
|
|
2642
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DynamicComponentLoader: () => (/* binding */ DynamicComponentLoader),\n/* harmony export */ RenderMappingContext: () => (/* binding */ RenderMappingContext),\n/* harmony export */ RenderMappingProvider: () => (/* binding */ RenderMappingProvider)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node/io/default_input_renderer */ \"./src/frontend/node/io/default_input_renderer.tsx\");\n/* harmony import */ var _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default_preview_renderer */ \"./src/frontend/datarenderer/default_preview_renderer.tsx\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\nvar _Inputrenderer = {\n float: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.FloatInput,\n int: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.IntegerInput,\n bool: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.BooleanInput,\n string: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.StringInput,\n str: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.StringInput,\n color: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.ColorInput,\n select: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.SelectionInput,\n enum: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.SelectionInput,\n};\nvar _HandlePreviewGenerators = {};\nvar _DataOverlayViewGenerators = {};\nvar _DataPreviewViewRenderer = {\n string: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.SingleValueOutput,\n table: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.TableOutput,\n image: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.Base64ImageOutput,\n svg: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.SVGImageOutput,\n dict: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.DictOutput,\n};\nvar _DataViewRenderer = {};\nvar _initialRenderMappings = {\n Inputrenderer: _Inputrenderer,\n HandlePreviewRenderer: _HandlePreviewGenerators,\n DataOverlayRenderer: _DataOverlayViewGenerators,\n DataPreviewViewRenderer: _DataPreviewViewRenderer,\n DataViewRenderer: _DataViewRenderer,\n};\nvar renderMappingReducer = function (state, action) {\n var _a, _b, _c, _d, _e;\n var options = action.options || {};\n var overwrite = options.overwrite === undefined ? true : options.overwrite;\n switch (action.type) {\n case \"EXTEND_INPUT_RENDER\":\n if (!overwrite && state.Inputrenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { Inputrenderer: __assign(__assign({}, state.Inputrenderer), (_a = {}, _a[action.payload.type] = action.payload.component, _a)) });\n case \"EXTEND_HANDLE_PREVIEW_RENDER\":\n if (!overwrite && state.HandlePreviewRenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { HandlePreviewRenderer: __assign(__assign({}, state.HandlePreviewRenderer), (_b = {}, _b[action.payload.type] = action.payload.component, _b)) });\n case \"EXTEND_DATA_OVERLAY_RENDER\":\n if (!overwrite && state.DataOverlayRenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { DataOverlayRenderer: __assign(__assign({}, state.DataOverlayRenderer), (_c = {}, _c[action.payload.type] = action.payload.component, _c)) });\n case \"EXTEND_DATA_PREVIEW_RENDER\":\n if (!overwrite && state.DataPreviewViewRenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { DataPreviewViewRenderer: __assign(__assign({}, state.DataPreviewViewRenderer), (_d = {}, _d[action.payload.type] = action.payload.component, _d)) });\n case \"EXTEND_DATA_VIEW_RENDER\":\n if (!overwrite && state.DataViewRenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { DataViewRenderer: __assign(__assign({}, state.DataViewRenderer), (_e = {}, _e[action.payload.type] = action.payload.component, _e)) });\n case \"EXTEND_FROM_PLUGIN\":\n var something_new = false;\n var checkpairs = [\n [action.payload.plugin.input_renderers || {}, state.Inputrenderer],\n [\n action.payload.plugin.handle_preview_renderers || {},\n state.HandlePreviewRenderer,\n ],\n [\n action.payload.plugin.data_overlay_renderers || {},\n state.DataOverlayRenderer,\n ],\n [\n action.payload.plugin.data_preview_renderers || {},\n state.DataPreviewViewRenderer,\n ],\n [\n action.payload.plugin.data_view_renderers || {},\n state.DataViewRenderer,\n ],\n ];\n for (var _i = 0, checkpairs_1 = checkpairs; _i < checkpairs_1.length; _i++) {\n var _f = checkpairs_1[_i], new_Inputrenderer = _f[0], old_Inputrenderer = _f[1];\n if (Object.keys(new_Inputrenderer).length > 0) {\n if (overwrite) {\n something_new = true;\n }\n else {\n for (var key in new_Inputrenderer) {\n if (!old_Inputrenderer[key]) {\n something_new = true;\n break;\n }\n }\n }\n }\n if (something_new)\n break;\n }\n if (!something_new) {\n return state;\n }\n for (var _g = 0, checkpairs_2 = checkpairs; _g < checkpairs_2.length; _g++) {\n var _h = checkpairs_2[_g], new_Inputrenderer = _h[0], old_Inputrenderer = _h[1];\n for (var key in new_Inputrenderer) {\n if (overwrite || !old_Inputrenderer[key]) {\n old_Inputrenderer[key] = new_Inputrenderer[key];\n }\n }\n }\n var newstate = __assign({}, state);\n return newstate;\n default:\n return state;\n }\n};\n/**\n * RenderMappingProvider is a React component that provides a context for managing and extending the mappings of input renderers, handle preview renderers, data overlay renderers, data preview view renderers, and data view renderers. These mappings are used throughout the application to render various types of inputs, previews, and data views dynamically.\n\n * The provider initializes with a set of default mappings and allows these mappings to be extended or overwritten via actions dispatched within the component's reducer. Additionally, it can automatically integrate renderer plugins, extending the functionality based on the provided plugins.\n\n * @param {object} props - The props object for the RenderMappingProvider component.\n * @param {ReactElement} props.children - The child components that will be wrapped by the provider.\n * @param {object} props.plugins - An object containing various FuncNodesReactPlugin instances, which may include renderer plugins to be integrated into the render mappings.\n\n * @returns {JSX.Element} A JSX element that provides the render mapping context to its children.\n\n * Context Value:\n * The context value provided by this component includes the following properties and functions:\n * - Inputrenderer: A mapping of input types to their corresponding renderer components.\n * - HandlePreviewRenderer: A mapping of handle preview types to their corresponding renderer components.\n * - DataOverlayRenderer: A mapping of data overlay types to their corresponding renderer components.\n * - DataPreviewViewRenderer: A mapping of data preview view types to their corresponding renderer components.\n * - DataViewRenderer: A mapping of data view types to their corresponding renderer components.\n * - extendInputRenderMapping: A function to extend the input renderer mapping.\n * - extendHandlePreviewRenderMapping: A function to extend the handle preview renderer mapping.\n * - extendDataOverlayRenderMapping: A function to extend the data overlay renderer mapping.\n * - extendDataPreviewRenderMapping: A function to extend the data preview view renderer mapping.\n * - extendDataViewRenderMapping: A function to extend the data view renderer mapping.\n * - extendFromPlugin: A function to extend all relevant mappings from a given renderer plugin.\n\n * Example usage:\n * ```jsx\n * <RenderMappingProvider plugins={myPlugins}>\n * <MyComponent />\n * </RenderMappingProvider>\n * ```\n */\nvar RenderMappingProvider = function (_a) {\n var children = _a.children, plugins = _a.plugins, fnrf_zst = _a.fnrf_zst;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(renderMappingReducer, _initialRenderMappings), state = _b[0], dispatch = _b[1];\n var extendInputRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_INPUT_RENDER\",\n payload: { type: type, component: component },\n options: options,\n });\n };\n var extendHandlePreviewRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_HANDLE_PREVIEW_RENDER\",\n payload: { type: type, component: component },\n options: options,\n });\n };\n var extendDataOverlayRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_DATA_OVERLAY_RENDER\",\n payload: { type: type, component: component },\n options: options,\n });\n };\n var extendDataPreviewRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_DATA_PREVIEW_RENDER\",\n payload: { type: type, component: component },\n options: options,\n });\n };\n var extendDataViewRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_DATA_VIEW_RENDER\",\n payload: { type: type, component: component },\n options: options,\n });\n };\n var extendFromPlugin = function (plugin, options) {\n dispatch({\n type: \"EXTEND_FROM_PLUGIN\",\n payload: { plugin: plugin },\n options: options,\n });\n };\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n for (var plugin in plugins) {\n var renderplug = plugins[plugin].RendererPlugin;\n if (renderplug)\n extendFromPlugin(renderplug);\n var renderpluginfactory = plugins[plugin].renderpluginfactory;\n if (renderpluginfactory) {\n extendFromPlugin(renderpluginfactory({ React: (react__WEBPACK_IMPORTED_MODULE_0___default()), fnrf_zst: fnrf_zst }));\n }\n }\n }, [plugins]);\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RenderMappingContext.Provider, { value: {\n Inputrenderer: state.Inputrenderer,\n HandlePreviewRenderer: state.HandlePreviewRenderer,\n DataOverlayRenderer: state.DataOverlayRenderer,\n DataPreviewViewRenderer: state.DataPreviewViewRenderer,\n DataViewRenderer: state.DataViewRenderer,\n extendInputRenderMapping: extendInputRenderMapping,\n extendHandlePreviewRenderMapping: extendHandlePreviewRenderMapping,\n extendDataOverlayRenderMapping: extendDataOverlayRenderMapping,\n extendDataPreviewRenderMapping: extendDataPreviewRenderMapping,\n extendDataViewRenderMapping: extendDataViewRenderMapping,\n extendFromPlugin: extendFromPlugin,\n } }, children));\n};\nvar RenderMappingContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({\n Inputrenderer: _initialRenderMappings.Inputrenderer,\n HandlePreviewRenderer: _initialRenderMappings.HandlePreviewRenderer,\n DataOverlayRenderer: _initialRenderMappings.DataOverlayRenderer,\n DataPreviewViewRenderer: _initialRenderMappings.DataPreviewViewRenderer,\n DataViewRenderer: _initialRenderMappings.DataViewRenderer,\n extendInputRenderMapping: function (_type, _component, _options) { },\n extendHandlePreviewRenderMapping: function (_type, _component, _options) { },\n extendDataOverlayRenderMapping: function (_type, _component, _options) { },\n extendDataPreviewRenderMapping: function (_type, _component, _options) { },\n extendDataViewRenderMapping: function (_type, _component, _options) { },\n extendFromPlugin: function (_plugin, _options) { },\n});\nvar DynamicComponentLoader = function (_a) {\n var Component = _a.component, props = __rest(_a, [\"component\"]);\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Component, __assign({}, props));\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/datarenderer/rendermappings.tsx?");
|
|
2642
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DynamicComponentLoader: () => (/* binding */ DynamicComponentLoader),\n/* harmony export */ RenderMappingContext: () => (/* binding */ RenderMappingContext),\n/* harmony export */ RenderMappingProvider: () => (/* binding */ RenderMappingProvider)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../node/io/default_input_renderer */ \"./src/frontend/node/io/default_input_renderer.tsx\");\n/* harmony import */ var _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./default_preview_renderer */ \"./src/frontend/datarenderer/default_preview_renderer.tsx\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\nvar _Inputrenderer = {\n float: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.FloatInput,\n int: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.IntegerInput,\n bool: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.BooleanInput,\n string: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.StringInput,\n str: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.StringInput,\n color: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.ColorInput,\n select: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.SelectionInput,\n enum: _node_io_default_input_renderer__WEBPACK_IMPORTED_MODULE_1__.SelectionInput,\n bytes: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.Base64BytesOutput,\n};\nvar _HandlePreviewGenerators = {\n bytes: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.Base64BytesOutput,\n};\nvar _InLineGenerators = {\n bytes: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.Base64BytesInLineOutput,\n};\nvar _DataOverlayViewGenerators = {};\nvar _DataPreviewViewRenderer = {\n string: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.SingleValueOutput,\n table: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.TableOutput,\n image: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.Base64ImageOutput,\n svg: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.SVGImageOutput,\n dict: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.DictOutput,\n bytes: _default_preview_renderer__WEBPACK_IMPORTED_MODULE_2__.Base64BytesOutput,\n};\nvar _DataViewRenderer = {};\nvar _initialRenderMappings = {\n Inputrenderer: _Inputrenderer,\n HandlePreviewRenderer: _HandlePreviewGenerators,\n DataOverlayRenderer: _DataOverlayViewGenerators,\n DataPreviewViewRenderer: _DataPreviewViewRenderer,\n DataViewRenderer: _DataViewRenderer,\n InLineRenderer: _InLineGenerators,\n};\nvar renderMappingReducer = function (state, action) {\n var _a, _b, _c, _d, _e;\n var options = action.options || {};\n var overwrite = options.overwrite === undefined ? true : options.overwrite;\n switch (action.type) {\n case \"EXTEND_INPUT_RENDER\":\n if (!overwrite && state.Inputrenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { Inputrenderer: __assign(__assign({}, state.Inputrenderer), (_a = {}, _a[action.payload.type] = action.payload.component, _a)) });\n case \"EXTEND_HANDLE_PREVIEW_RENDER\":\n if (!overwrite && state.HandlePreviewRenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { HandlePreviewRenderer: __assign(__assign({}, state.HandlePreviewRenderer), (_b = {}, _b[action.payload.type] = action.payload.component, _b)) });\n case \"EXTEND_DATA_OVERLAY_RENDER\":\n if (!overwrite && state.DataOverlayRenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { DataOverlayRenderer: __assign(__assign({}, state.DataOverlayRenderer), (_c = {}, _c[action.payload.type] = action.payload.component, _c)) });\n case \"EXTEND_DATA_PREVIEW_RENDER\":\n if (!overwrite && state.DataPreviewViewRenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { DataPreviewViewRenderer: __assign(__assign({}, state.DataPreviewViewRenderer), (_d = {}, _d[action.payload.type] = action.payload.component, _d)) });\n case \"EXTEND_DATA_VIEW_RENDER\":\n if (!overwrite && state.DataViewRenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { DataViewRenderer: __assign(__assign({}, state.DataViewRenderer), (_e = {}, _e[action.payload.type] = action.payload.component, _e)) });\n case \"EXTEND_FROM_PLUGIN\":\n var something_new = false;\n var checkpairs = [\n [action.payload.plugin.input_renderers || {}, state.Inputrenderer],\n [\n action.payload.plugin.handle_preview_renderers || {},\n state.HandlePreviewRenderer,\n ],\n [\n action.payload.plugin.data_overlay_renderers || {},\n state.DataOverlayRenderer,\n ],\n [\n action.payload.plugin.data_preview_renderers || {},\n state.DataPreviewViewRenderer,\n ],\n [\n action.payload.plugin.data_view_renderers || {},\n state.DataViewRenderer,\n ],\n ];\n for (var _i = 0, checkpairs_1 = checkpairs; _i < checkpairs_1.length; _i++) {\n var _f = checkpairs_1[_i], new_Inputrenderer = _f[0], old_Inputrenderer = _f[1];\n if (Object.keys(new_Inputrenderer).length > 0) {\n if (overwrite) {\n something_new = true;\n }\n else {\n for (var key in new_Inputrenderer) {\n if (!old_Inputrenderer[key]) {\n something_new = true;\n break;\n }\n }\n }\n }\n if (something_new)\n break;\n }\n if (!something_new) {\n return state;\n }\n for (var _g = 0, checkpairs_2 = checkpairs; _g < checkpairs_2.length; _g++) {\n var _h = checkpairs_2[_g], new_Inputrenderer = _h[0], old_Inputrenderer = _h[1];\n for (var key in new_Inputrenderer) {\n if (overwrite || !old_Inputrenderer[key]) {\n old_Inputrenderer[key] = new_Inputrenderer[key];\n }\n }\n }\n var newstate = __assign({}, state);\n return newstate;\n default:\n return state;\n }\n};\n/**\n * RenderMappingProvider is a React component that provides a context for managing and extending the mappings of input renderers, handle preview renderers, data overlay renderers, data preview view renderers, and data view renderers. These mappings are used throughout the application to render various types of inputs, previews, and data views dynamically.\n\n * The provider initializes with a set of default mappings and allows these mappings to be extended or overwritten via actions dispatched within the component's reducer. Additionally, it can automatically integrate renderer plugins, extending the functionality based on the provided plugins.\n\n * @param {object} props - The props object for the RenderMappingProvider component.\n * @param {ReactElement} props.children - The child components that will be wrapped by the provider.\n * @param {object} props.plugins - An object containing various FuncNodesReactPlugin instances, which may include renderer plugins to be integrated into the render mappings.\n\n * @returns {JSX.Element} A JSX element that provides the render mapping context to its children.\n\n * Context Value:\n * The context value provided by this component includes the following properties and functions:\n * - Inputrenderer: A mapping of input types to their corresponding renderer components.\n * - HandlePreviewRenderer: A mapping of handle preview types to their corresponding renderer components.\n * - DataOverlayRenderer: A mapping of data overlay types to their corresponding renderer components.\n * - DataPreviewViewRenderer: A mapping of data preview view types to their corresponding renderer components.\n * - DataViewRenderer: A mapping of data view types to their corresponding renderer components.\n * - extendInputRenderMapping: A function to extend the input renderer mapping.\n * - extendHandlePreviewRenderMapping: A function to extend the handle preview renderer mapping.\n * - extendDataOverlayRenderMapping: A function to extend the data overlay renderer mapping.\n * - extendDataPreviewRenderMapping: A function to extend the data preview view renderer mapping.\n * - extendDataViewRenderMapping: A function to extend the data view renderer mapping.\n * - extendFromPlugin: A function to extend all relevant mappings from a given renderer plugin.\n\n * Example usage:\n * ```jsx\n * <RenderMappingProvider plugins={myPlugins}>\n * <MyComponent />\n * </RenderMappingProvider>\n * ```\n */\nvar RenderMappingProvider = function (_a) {\n var children = _a.children, plugins = _a.plugins, fnrf_zst = _a.fnrf_zst;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(renderMappingReducer, _initialRenderMappings), state = _b[0], dispatch = _b[1];\n var extendInputRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_INPUT_RENDER\",\n payload: { type: type, component: component },\n options: options,\n });\n };\n var extendHandlePreviewRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_HANDLE_PREVIEW_RENDER\",\n payload: { type: type, component: component },\n options: options,\n });\n };\n var extendDataOverlayRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_DATA_OVERLAY_RENDER\",\n payload: { type: type, component: component },\n options: options,\n });\n };\n var extendDataPreviewRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_DATA_PREVIEW_RENDER\",\n payload: { type: type, component: component },\n options: options,\n });\n };\n var extendDataViewRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_DATA_VIEW_RENDER\",\n payload: { type: type, component: component },\n options: options,\n });\n };\n var extendFromPlugin = function (plugin, options) {\n dispatch({\n type: \"EXTEND_FROM_PLUGIN\",\n payload: { plugin: plugin },\n options: options,\n });\n };\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n for (var plugin in plugins) {\n var renderplug = plugins[plugin].RendererPlugin;\n if (renderplug)\n extendFromPlugin(renderplug);\n var renderpluginfactory = plugins[plugin].renderpluginfactory;\n if (renderpluginfactory) {\n extendFromPlugin(renderpluginfactory({ React: (react__WEBPACK_IMPORTED_MODULE_0___default()), fnrf_zst: fnrf_zst }));\n }\n }\n }, [plugins]);\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RenderMappingContext.Provider, { value: {\n Inputrenderer: state.Inputrenderer,\n HandlePreviewRenderer: state.HandlePreviewRenderer,\n DataOverlayRenderer: state.DataOverlayRenderer,\n DataPreviewViewRenderer: state.DataPreviewViewRenderer,\n DataViewRenderer: state.DataViewRenderer,\n InLineRenderer: state.InLineRenderer,\n extendInputRenderMapping: extendInputRenderMapping,\n extendHandlePreviewRenderMapping: extendHandlePreviewRenderMapping,\n extendDataOverlayRenderMapping: extendDataOverlayRenderMapping,\n extendDataPreviewRenderMapping: extendDataPreviewRenderMapping,\n extendDataViewRenderMapping: extendDataViewRenderMapping,\n extendFromPlugin: extendFromPlugin,\n } }, children));\n};\nvar RenderMappingContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({\n Inputrenderer: _initialRenderMappings.Inputrenderer,\n HandlePreviewRenderer: _initialRenderMappings.HandlePreviewRenderer,\n DataOverlayRenderer: _initialRenderMappings.DataOverlayRenderer,\n DataPreviewViewRenderer: _initialRenderMappings.DataPreviewViewRenderer,\n DataViewRenderer: _initialRenderMappings.DataViewRenderer,\n InLineRenderer: _initialRenderMappings.InLineRenderer,\n extendInputRenderMapping: function (_type, _component, _options) { },\n extendHandlePreviewRenderMapping: function (_type, _component, _options) { },\n extendDataOverlayRenderMapping: function (_type, _component, _options) { },\n extendDataPreviewRenderMapping: function (_type, _component, _options) { },\n extendDataViewRenderMapping: function (_type, _component, _options) { },\n extendFromPlugin: function (_plugin, _options) { },\n});\nvar DynamicComponentLoader = function (_a) {\n var Component = _a.component, props = __rest(_a, [\"component\"]);\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Component, __assign({}, props));\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/datarenderer/rendermappings.tsx?");
|
|
2643
2643
|
|
|
2644
2644
|
/***/ }),
|
|
2645
2645
|
|
|
@@ -2672,7 +2672,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2672
2672
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2673
2673
|
|
|
2674
2674
|
"use strict";
|
|
2675
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FuncNodesContext: () => (/* binding */ FuncNodesContext),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _states_fnrfzst__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../states/fnrfzst */ \"./src/states/fnrfzst.ts\");\n/* harmony import */ var _funcnodes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../funcnodes */ \"./src/funcnodes/index.ts\");\n/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../header */ \"./src/frontend/header/index.tsx\");\n/* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../lib */ \"./src/frontend/lib.tsx\");\n/* harmony import */ var _react_flow_layer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./react_flow_layer */ \"./src/frontend/funcnodesreactflow/react_flow_layer.tsx\");\n/* harmony import */ var _datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../datarenderer/rendermappings */ \"./src/frontend/datarenderer/rendermappings.tsx\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\n\n\n\n\n\nvar FuncNodesContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)((0,_states_fnrfzst__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}));\nvar InnerFuncnodesReactFlow = function (_a) {\n var fnrf_zst = _a.fnrf_zst, header = _a.header;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"), workermanageruri = _b[0], setWorkermanageruri = _b[1];\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(fnrf_zst.options.default_worker), worker = _c[0], setWorker = _c[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n function fetch_worker_manager() {\n return __awaiter(this, void 0, void 0, function () {\n var response, workerewsuri;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetch(\"/worker_manager\")];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.text()];\n case 2:\n workerewsuri = _a.sent();\n setWorkermanageruri(workerewsuri);\n return [2 /*return*/];\n }\n });\n });\n }\n if (fnrf_zst.options.useWorkerManager)\n fetch_worker_manager();\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (workermanageruri) {\n var workermanager = new _funcnodes__WEBPACK_IMPORTED_MODULE_2__.WorkerManager(workermanageruri, fnrf_zst);\n workermanager.on_setWorker = setWorker;\n fnrf_zst.workermanager = workermanager;\n }\n }, [workermanageruri]);\n fnrf_zst.worker = worker;\n fnrf_zst.auto_progress();\n // const worker = new WebSocketWorker(\"ws://localhost:9382\", fnrf_zst);\n // fnrf_zst.worker = worker;\n var plugins = fnrf_zst.plugins();\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_6__.RenderMappingProvider, { plugins: plugins, fnrf_zst: fnrf_zst },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FuncNodesContext.Provider, { value: fnrf_zst },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"funcnodesreactflowcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_header__WEBPACK_IMPORTED_MODULE_3__[\"default\"], __assign({}, header)),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"funcnodesreactflowbody\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_lib__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_react_flow_layer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null))))));\n};\nvar FuncnodesReactFlow = function (_a) {\n var _b = _a.useWorkerManager, useWorkerManager = _b === void 0 ? true : _b, _c = _a.default_worker, default_worker = _c === void 0 ? undefined : _c, _d = _a.header, header = _d === void 0 ? {} : _d;\n if (!useWorkerManager && default_worker === undefined) {\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, \"Error: If you don't use a worker manager, you must provide a default worker.\"));\n }\n var fnrf_zst = (0,_states_fnrfzst__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n useWorkerManager: useWorkerManager,\n default_worker: default_worker,\n });\n if (default_worker) {\n default_worker.set_zustand(fnrf_zst);\n }\n // @ts-ignore\n window.fnrf_zst = fnrf_zst
|
|
2675
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FuncNodesContext: () => (/* binding */ FuncNodesContext),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _states_fnrfzst__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../states/fnrfzst */ \"./src/states/fnrfzst.ts\");\n/* harmony import */ var _funcnodes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../funcnodes */ \"./src/funcnodes/index.ts\");\n/* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../header */ \"./src/frontend/header/index.tsx\");\n/* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../lib */ \"./src/frontend/lib.tsx\");\n/* harmony import */ var _react_flow_layer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./react_flow_layer */ \"./src/frontend/funcnodesreactflow/react_flow_layer.tsx\");\n/* harmony import */ var _datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../datarenderer/rendermappings */ \"./src/frontend/datarenderer/rendermappings.tsx\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\n\n\n\n\n\nvar FuncNodesContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)((0,_states_fnrfzst__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}));\nvar InnerFuncnodesReactFlow = function (_a) {\n var fnrf_zst = _a.fnrf_zst, header = _a.header;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"), workermanageruri = _b[0], setWorkermanageruri = _b[1];\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(fnrf_zst.options.default_worker), worker = _c[0], setWorker = _c[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n function fetch_worker_manager() {\n return __awaiter(this, void 0, void 0, function () {\n var response, workerewsuri;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, fetch(\"/worker_manager\")];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.text()];\n case 2:\n workerewsuri = _a.sent();\n setWorkermanageruri(workerewsuri);\n return [2 /*return*/];\n }\n });\n });\n }\n if (fnrf_zst.options.useWorkerManager)\n fetch_worker_manager();\n }, []);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (workermanageruri) {\n var workermanager = new _funcnodes__WEBPACK_IMPORTED_MODULE_2__.WorkerManager(workermanageruri, fnrf_zst);\n workermanager.on_setWorker = setWorker;\n fnrf_zst.workermanager = workermanager;\n }\n }, [workermanageruri]);\n fnrf_zst.worker = worker;\n fnrf_zst.auto_progress();\n // const worker = new WebSocketWorker(\"ws://localhost:9382\", fnrf_zst);\n // fnrf_zst.worker = worker;\n var plugins = fnrf_zst.plugins();\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_6__.RenderMappingProvider, { plugins: plugins, fnrf_zst: fnrf_zst },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FuncNodesContext.Provider, { value: fnrf_zst },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"funcnodesreactflowcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_header__WEBPACK_IMPORTED_MODULE_3__[\"default\"], __assign({}, header)),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"funcnodesreactflowbody\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_lib__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_react_flow_layer__WEBPACK_IMPORTED_MODULE_5__[\"default\"], null))))));\n};\nvar FuncnodesReactFlow = function (_a) {\n var _b = _a.useWorkerManager, useWorkerManager = _b === void 0 ? true : _b, _c = _a.default_worker, default_worker = _c === void 0 ? undefined : _c, _d = _a.header, header = _d === void 0 ? {} : _d;\n if (!useWorkerManager && default_worker === undefined) {\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, \"Error: If you don't use a worker manager, you must provide a default worker.\"));\n }\n var fnrf_zst = (0,_states_fnrfzst__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n useWorkerManager: useWorkerManager,\n default_worker: default_worker,\n });\n if (default_worker) {\n default_worker.set_zustand(fnrf_zst);\n }\n // @ts-ignore\n if (window.fnrf_zst === undefined) {\n // @ts-ignore\n window.fnrf_zst = [];\n }\n // add to window.fnrf_zst if not already there\n // @ts-ignore\n if (!window.fnrf_zst.includes(fnrf_zst)) {\n // @ts-ignore\n window.fnrf_zst.push(fnrf_zst);\n }\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InnerFuncnodesReactFlow, { fnrf_zst: fnrf_zst, header: header });\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FuncnodesReactFlow);\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/funcnodesreactflow/index.tsx?");
|
|
2676
2676
|
|
|
2677
2677
|
/***/ }),
|
|
2678
2678
|
|
|
@@ -2694,7 +2694,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2694
2694
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2695
2695
|
|
|
2696
2696
|
"use strict";
|
|
2697
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../funcnodesreactflow */ \"./src/frontend/funcnodesreactflow/index.tsx\");\n/* harmony import */ var _header_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./header.scss */ \"./src/frontend/header/header.scss\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dialog */ \"./src/frontend/dialog.tsx\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\nvar NewWorkerDialog = function (_a) {\n var trigger = _a.trigger;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"), name = _b[0], setName = _b[1];\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), copyLib = _c[0], setCopyLib = _c[1];\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), copyNS = _d[0], setCopyNS = _d[1];\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var workersstate = fnrf_zst.workers();\n var _e = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n name: \"None\",\n uuid: \"\",\n }), reference = _e[0], setReference = _e[1];\n if (!fnrf_zst.options.useWorkerManager)\n return null;\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_dialog__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { trigger: trigger, title: \"New Worker\", description: \"Please provide a name and select a another worker as interpreter reference\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n \"Name:\",\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { className: \"styledinput\", onChange: function (e) {\n setName(e.currentTarget.value);\n }, value: name })),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n \"Reference Worker:\",\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"select\", { className: \"styleddropdown\", onChange: function (e) {\n var uuid = e.target.value;\n var name = e.target.selectedOptions[0].innerText;\n setReference({ name: name, uuid: uuid });\n }, value: reference.uuid },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { value: \"\" }, \"None\"),\n Object.keys(workersstate).map(function (workerid) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { className: \"\", key: workerid, value: workerid }, workersstate[workerid].name || workerid)); })),\n reference.uuid && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n \"Copy Lib:\",\n \" \",\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { type: \"checkbox\", className: \"styledcheckbox\", checked: copyLib, onChange: function (e) {\n setCopyLib(e.currentTarget.checked);\n } })),\n copyLib && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n \"Copy Nodespace\",\n \" \",\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { type: \"checkbox\", className: \"styledcheckbox\", checked: copyNS, onChange: function (e) {\n setCopyNS(e.currentTarget.checked);\n if (e.currentTarget.checked) {\n setCopyLib(true);\n }\n } }))))),\n name && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: function () {\n var _a;\n (_a = fnrf_zst.workermanager) === null || _a === void 0 ? void 0 : _a.new_worker({\n name: name,\n reference: reference.uuid,\n copyLib: copyLib,\n copyNS: copyNS,\n });\n } }, \"Create\"))))));\n};\nvar Statusbar = function () {\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var progress = fnrf_zst.progress_state();\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"statusbar\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", { className: \"statusbar-progressbar\", style: { width: Math.min(100, 100 * progress.progress) + \"%\" } }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", { className: \"statusbar-message\" }, progress.message)));\n};\nvar FuncnodesHeader = function (_a) {\n var headerprops = __rest(_a, []);\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n console.log(\"headerprops\", headerprops);\n var workersstate = fnrf_zst.workers();\n var onNew = function () {\n var _a;\n var alert = window.confirm(\"Are you sure you want to start a new flow?\");\n if (alert) {\n (_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.clear();\n }\n };\n var onSave = function () { return __awaiter(void 0, void 0, void 0, function () {\n var data, blob, url, a;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, ((_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.save())];\n case 1:\n data = _b.sent();\n if (!data)\n return [2 /*return*/];\n blob = new Blob([JSON.stringify(data)], {\n type: \"application/json\",\n });\n url = URL.createObjectURL(blob);\n a = document.createElement(\"a\");\n a.href = url;\n a.download = \"flow.json\";\n a.click();\n URL.revokeObjectURL(url);\n a.remove();\n return [2 /*return*/];\n }\n });\n }); };\n var onOpen = function () { return __awaiter(void 0, void 0, void 0, function () {\n var input;\n return __generator(this, function (_a) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = \".json\";\n input.onchange = function (e) { return __awaiter(void 0, void 0, void 0, function () {\n var file, reader;\n var _a;\n return __generator(this, function (_b) {\n file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];\n if (!file)\n return [2 /*return*/];\n reader = new FileReader();\n reader.onload = function (e) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n contents = (_a = e.target) === null || _a === void 0 ? void 0 : _a.result;\n if (!contents)\n return [2 /*return*/];\n data = JSON.parse(contents);\n return [4 /*yield*/, ((_b = fnrf_zst.worker) === null || _b === void 0 ? void 0 : _b.load(data))];\n case 1:\n _c.sent();\n return [2 /*return*/];\n }\n });\n }); };\n reader.readAsText(file);\n return [2 /*return*/];\n });\n }); };\n input.click();\n return [2 /*return*/];\n });\n }); };\n var workerselectchange = function (e) {\n var workerid = e.target.value;\n if (workerid === \"__select__\")\n return;\n if (!fnrf_zst.workers)\n return;\n if (!fnrf_zst.workermanager)\n return;\n if (!workersstate[workerid])\n return;\n if (!workersstate[workerid].active) {\n //create popup\n var ans = window.confirm(\"this is an inactive worker, selecting it will start it, continue?\");\n if (!ans)\n return;\n }\n fnrf_zst.workermanager.set_active(workerid);\n };\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"funcnodesreactflowheader\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Statusbar, null)),\n fnrf_zst.options.useWorkerManager && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"select\", { className: \"workerselect styleddropdown\", value: fnrf_zst.worker ? fnrf_zst.worker.uuid : \"__select__\", onChange: workerselectchange },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { disabled: true, value: \"__select__\" }, \"Select Worker\"),\n Object.keys(workersstate).map(function (workerid) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { className: \"workerselectoption\" +\n (workersstate[workerid].active ? \" active\" : \" inactive\"), key: workerid, value: workerid }, workersstate[workerid].name || workerid)); })))),\n fnrf_zst.worker && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: function () {\n if (!fnrf_zst.worker)\n return;\n fnrf_zst.worker.stop();\n } }, \"stop worker\")),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: function () {\n var _a;\n if (!fnrf_zst.worker)\n return;\n if (!fnrf_zst.workermanager)\n return console.error(\"no wm\");\n (_a = fnrf_zst.workermanager) === null || _a === void 0 ? void 0 : _a.restart_worker(fnrf_zst.worker.uuid);\n } }, \"restart worker\")))),\n fnrf_zst.options.useWorkerManager && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NewWorkerDialog, { trigger: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\" }, \"new worker\") }))),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: onNew }, \"new nodespace\")),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: onOpen }, \"open\")),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: onSave }, \"save\"))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FuncnodesHeader);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/header/index.tsx?");
|
|
2697
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../funcnodesreactflow */ \"./src/frontend/funcnodesreactflow/index.tsx\");\n/* harmony import */ var _header_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./header.scss */ \"./src/frontend/header/header.scss\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dialog */ \"./src/frontend/dialog.tsx\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\nvar NewWorkerDialog = function (_a) {\n var trigger = _a.trigger;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"), name = _b[0], setName = _b[1];\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), copyLib = _c[0], setCopyLib = _c[1];\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), copyNS = _d[0], setCopyNS = _d[1];\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var workersstate = fnrf_zst.workers();\n var _e = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n name: \"None\",\n uuid: \"\",\n }), reference = _e[0], setReference = _e[1];\n if (!fnrf_zst.options.useWorkerManager)\n return null;\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_dialog__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { trigger: trigger, title: \"New Worker\", description: \"Please provide a name and select a another worker as interpreter reference\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n \"Name:\",\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { className: \"styledinput\", onChange: function (e) {\n setName(e.currentTarget.value);\n }, value: name })),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n \"Reference Worker:\",\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"br\", null),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"select\", { className: \"styleddropdown\", onChange: function (e) {\n var uuid = e.target.value;\n var name = e.target.selectedOptions[0].innerText;\n setReference({ name: name, uuid: uuid });\n }, value: reference.uuid },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { value: \"\" }, \"None\"),\n Object.keys(workersstate).map(function (workerid) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { className: \"\", key: workerid, value: workerid }, workersstate[workerid].name || workerid)); })),\n reference.uuid && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n \"Copy Lib:\",\n \" \",\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { type: \"checkbox\", className: \"styledcheckbox\", checked: copyLib, onChange: function (e) {\n setCopyLib(e.currentTarget.checked);\n } })),\n copyLib && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n \"Copy Nodespace\",\n \" \",\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { type: \"checkbox\", className: \"styledcheckbox\", checked: copyNS, onChange: function (e) {\n setCopyNS(e.currentTarget.checked);\n if (e.currentTarget.checked) {\n setCopyLib(true);\n }\n } }))))),\n name && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: function () {\n var _a;\n (_a = fnrf_zst.workermanager) === null || _a === void 0 ? void 0 : _a.new_worker({\n name: name,\n reference: reference.uuid,\n copyLib: copyLib,\n copyNS: copyNS,\n });\n } }, \"Create\"))))));\n};\nvar Statusbar = function () {\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var progress = fnrf_zst.progress_state();\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"statusbar\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", { className: \"statusbar-progressbar\", style: { width: Math.min(100, 100 * progress.progress) + \"%\" } }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", { className: \"statusbar-message\" }, progress.message)));\n};\nvar FuncnodesHeader = function (_a) {\n var headerprops = __rest(_a, []);\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n // pserudouse headerprops\n if (Object.keys(headerprops).length > 0) {\n fnrf_zst.logger.debug(\"headerprops\", headerprops);\n }\n var workersstate = fnrf_zst.workers();\n var onNew = function () {\n var _a;\n var alert = window.confirm(\"Are you sure you want to start a new flow?\");\n if (alert) {\n (_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.clear();\n }\n };\n var onSave = function () { return __awaiter(void 0, void 0, void 0, function () {\n var data, blob, url, a;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, ((_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.save())];\n case 1:\n data = _b.sent();\n if (!data)\n return [2 /*return*/];\n blob = new Blob([JSON.stringify(data)], {\n type: \"application/json\",\n });\n url = URL.createObjectURL(blob);\n a = document.createElement(\"a\");\n a.href = url;\n a.download = \"flow.json\";\n a.click();\n URL.revokeObjectURL(url);\n a.remove();\n return [2 /*return*/];\n }\n });\n }); };\n var onOpen = function () { return __awaiter(void 0, void 0, void 0, function () {\n var input;\n return __generator(this, function (_a) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = \".json\";\n input.onchange = function (e) { return __awaiter(void 0, void 0, void 0, function () {\n var file, reader;\n var _a;\n return __generator(this, function (_b) {\n file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];\n if (!file)\n return [2 /*return*/];\n reader = new FileReader();\n reader.onload = function (e) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n contents = (_a = e.target) === null || _a === void 0 ? void 0 : _a.result;\n if (!contents)\n return [2 /*return*/];\n data = JSON.parse(contents);\n return [4 /*yield*/, ((_b = fnrf_zst.worker) === null || _b === void 0 ? void 0 : _b.load(data))];\n case 1:\n _c.sent();\n return [2 /*return*/];\n }\n });\n }); };\n reader.readAsText(file);\n return [2 /*return*/];\n });\n }); };\n input.click();\n return [2 /*return*/];\n });\n }); };\n var workerselectchange = function (e) {\n var workerid = e.target.value;\n if (workerid === \"__select__\")\n return;\n if (!fnrf_zst.workers)\n return;\n if (!fnrf_zst.workermanager)\n return;\n if (!workersstate[workerid])\n return;\n if (!workersstate[workerid].active) {\n //create popup\n var ans = window.confirm(\"this is an inactive worker, selecting it will start it, continue?\");\n if (!ans)\n return;\n }\n fnrf_zst.workermanager.set_active(workerid);\n };\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"funcnodesreactflowheader\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Statusbar, null)),\n fnrf_zst.options.useWorkerManager && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"select\", { className: \"workerselect styleddropdown\", value: fnrf_zst.worker ? fnrf_zst.worker.uuid : \"__select__\", onChange: workerselectchange },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { disabled: true, value: \"__select__\" }, \"Select Worker\"),\n Object.keys(workersstate).map(function (workerid) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { className: \"workerselectoption\" +\n (workersstate[workerid].active ? \" active\" : \" inactive\"), key: workerid, value: workerid }, workersstate[workerid].name || workerid)); })))),\n fnrf_zst.worker && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: function () {\n if (!fnrf_zst.worker)\n return;\n fnrf_zst.worker.stop();\n } }, \"stop worker\")),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: function () {\n var _a;\n if (!fnrf_zst.worker)\n return;\n if (!fnrf_zst.workermanager)\n return fnrf_zst.logger.error(\"no workermanager\");\n (_a = fnrf_zst.workermanager) === null || _a === void 0 ? void 0 : _a.restart_worker(fnrf_zst.worker.uuid);\n } }, \"restart worker\")))),\n fnrf_zst.options.useWorkerManager && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NewWorkerDialog, { trigger: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\" }, \"new worker\") }))),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: onNew }, \"new nodespace\")),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: onOpen }, \"open\")),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", { className: \"styledbtn\", onClick: onSave }, \"save\"))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FuncnodesHeader);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/header/index.tsx?");
|
|
2698
2698
|
|
|
2699
2699
|
/***/ }),
|
|
2700
2700
|
|
|
@@ -2749,7 +2749,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2749
2749
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2750
2750
|
|
|
2751
2751
|
"use strict";
|
|
2752
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BooleanInput: () => (/* binding */ BooleanInput),\n/* harmony export */ ColorInput: () => (/* binding */ ColorInput),\n/* harmony export */ FloatInput: () => (/* binding */ FloatInput),\n/* harmony export */ IntegerInput: () => (/* binding */ IntegerInput),\n/* harmony export */ SelectionInput: () => (/* binding */ SelectionInput),\n/* harmony export */ StringInput: () => (/* binding */ StringInput)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../funcnodesreactflow */ \"./src/frontend/funcnodesreactflow/index.tsx\");\n/* harmony import */ var _utils_colorpicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/colorpicker */ \"./src/frontend/utils/colorpicker.tsx\");\n/* harmony import */ var _radix_ui_react_slider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slider */ \"../node_modules/@radix-ui/react-slider/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-tooltip */ \"../node_modules/@radix-ui/react-tooltip/dist/index.mjs\");\n/* harmony import */ var _utils_select__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/select */ \"./src/frontend/utils/select.tsx\");\n\n\n\n\n\n\n\nvar BooleanInput = function (_a) {\n var io = _a.io, inputconverter = _a.inputconverter;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var indeterminate = io.value === undefined;\n var cRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (!cRef.current)\n return;\n cRef.current.indeterminate = indeterminate;\n }, [cRef, indeterminate]);\n var on_change = function (e) {\n var _a;\n var new_value = e.target.checked;\n try {\n new_value = inputconverter[0](e.target.checked);\n }\n catch (e) { }\n (_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.set_io_value({\n nid: io.node,\n ioid: io.id,\n value: new_value,\n set_default: io.render_options.set_default,\n });\n };\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { ref: cRef, type: \"checkbox\", className: \"styledcheckbox booleaninput\", checked: !!inputconverter[1](io.value), onChange: on_change, disabled: io.connected }));\n};\nvar NumberInput = function (_a) {\n var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var io = _a.io, inputconverter = _a.inputconverter, _o = _a.parser, parser = _o === void 0 ? function (n) { return parseFloat(n); } : _o;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var _p = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(inputconverter[1](io.value)), tempvalue = _p[0], setTempValue = _p[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n setTempValue(inputconverter[1](io.value));\n }, [io.value]);\n var set_new_value = function (new_value) {\n var _a, _b, _c;\n new_value = parser(parseFloat(new_value.toString()).toString() // parse float for e notation\n );\n if (isNaN(new_value)) {\n new_value = \"<NoValue>\";\n setTempValue(\"\");\n }\n else {\n if (((_a = io.value_options) === null || _a === void 0 ? void 0 : _a.min) !== undefined &&\n new_value < io.value_options.min)\n new_value = io.value_options.min;\n if (((_b = io.value_options) === null || _b === void 0 ? void 0 : _b.max) !== undefined &&\n new_value > io.value_options.max)\n new_value = io.value_options.max;\n setTempValue(new_value.toString());\n }\n try {\n new_value = inputconverter[0](new_value);\n }\n catch (e) { }\n (_c = fnrf_zst.worker) === null || _c === void 0 ? void 0 : _c.set_io_value({\n nid: io.node,\n ioid: io.id,\n value: new_value,\n set_default: io.render_options.set_default,\n });\n };\n var on_change = function (e) {\n set_new_value(e.target.value);\n };\n var v = io.connected ? inputconverter[1](io.value) : tempvalue;\n if (v === undefined)\n v = (_b = io.value_options) === null || _b === void 0 ? void 0 : _b.min;\n if (v === undefined)\n v = (_c = io.value_options) === null || _c === void 0 ? void 0 : _c.max;\n if (v === undefined)\n v = \"\";\n if (v === null)\n v = \"\";\n if (((_d = io.value_options) === null || _d === void 0 ? void 0 : _d.max) !== undefined &&\n ((_e = io.value_options) === null || _e === void 0 ? void 0 : _e.min) !== undefined) {\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { style: { minWidth: \"100px\" }, className: \"SliderContainer\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_slider__WEBPACK_IMPORTED_MODULE_4__.Root, { className: \"SliderRoot\", value: [v === undefined ? (_f = io.value_options) === null || _f === void 0 ? void 0 : _f.min : v], min: (_g = io.value_options) === null || _g === void 0 ? void 0 : _g.min, max: (_h = io.value_options) === null || _h === void 0 ? void 0 : _h.max, step: io.render_options.step ||\n (((_j = io.value_options) === null || _j === void 0 ? void 0 : _j.max) - ((_k = io.value_options) === null || _k === void 0 ? void 0 : _k.min)) / 1000, disabled: io.connected, onValueCommit: function (value) {\n if (isNaN(value[0]))\n return;\n set_new_value(value[0]);\n }, onValueChange: function (value) {\n if (isNaN(value[0]))\n return;\n setTempValue(value[0].toString());\n } },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_slider__WEBPACK_IMPORTED_MODULE_4__.Track, { className: \"SliderTrack\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_slider__WEBPACK_IMPORTED_MODULE_4__.Range, { className: \"SliderRange\" })),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.TooltipProvider, null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Root, { open: true },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Trigger, { asChild: true },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_slider__WEBPACK_IMPORTED_MODULE_4__.Thumb, { className: \"SliderThumb\" })),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Content, { className: \"SliderTooltipContent\" }, v))))));\n }\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { type: \"text\", className: \"nodedatainput styledinput numberinput\", value: v, onChange: function (e) { return setTempValue(e.target.value); }, onBlur: on_change, onKeyDown: function (e) {\n // on key up add step to value\n if (e.key === \"ArrowUp\") {\n var step = io.render_options.step || 1;\n if (e.shiftKey)\n step *= 10;\n var new_value = (parseFloat(v) || 0) + step;\n // setTempValue(new_value.toString());\n set_new_value(new_value);\n return;\n }\n // on key down subtract step to value\n if (e.key === \"ArrowDown\") {\n var step = io.render_options.step || 1;\n if (e.shiftKey)\n step *= 10;\n var new_value = (parseFloat(v) || 0) - step;\n // setTempValue(new_value.toString());\n set_new_value(new_value);\n return;\n }\n //accept only numbers\n if (!/^[0-9.eE+-]$/.test(e.key) &&\n ![\"Backspace\", \"ArrowLeft\", \"ArrowRight\", \"Delete\", \"Tab\"].includes(e.key)) {\n e.preventDefault();\n }\n }, disabled: io.connected, step: io.render_options.step, min: (_l = io.value_options) === null || _l === void 0 ? void 0 : _l.min, max: (_m = io.value_options) === null || _m === void 0 ? void 0 : _m.max }));\n};\nvar FloatInput = function (_a) {\n var io = _a.io, inputconverter = _a.inputconverter;\n return NumberInput({ io: io, inputconverter: inputconverter, parser: parseFloat });\n};\nvar IntegerInput = function (_a) {\n var io = _a.io, inputconverter = _a.inputconverter;\n return NumberInput({ io: io, inputconverter: inputconverter, parser: parseInt });\n};\nvar StringInput = function (_a) {\n var io = _a.io, inputconverter = _a.inputconverter;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(inputconverter[1](io.value)), tempvalue = _b[0], setTempValue = _b[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n setTempValue(inputconverter[1](io.value));\n }, [io.value]);\n var on_change = function (e) {\n var _a;\n var new_value = e.target.value;\n if (!new_value)\n new_value = \"<NoValue>\";\n try {\n new_value = inputconverter[0](new_value);\n }\n catch (e) { }\n (_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.set_io_value({\n nid: io.node,\n ioid: io.id,\n value: new_value,\n set_default: io.render_options.set_default,\n });\n };\n var v = io.connected ? inputconverter[1](io.value) : tempvalue;\n if (v === undefined || v === null)\n v = \"\";\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { className: \"nodedatainput styledinput stringinput\", value: v, onChange: function (e) { return setTempValue(e.target.value); }, onBlur: on_change, disabled: io.connected }));\n};\nvar _parse_string = function (s) { return s; };\nvar _parse_number = function (s) { return parseFloat(s); };\nvar _parse_boolean = function (s) { return !!s; };\nvar _parse_null = function (s) { return (s === \"null\" ? null : s); };\nvar get_parser = function (datatype) {\n if (datatype === \"nuinputconvertermber\") {\n return _parse_number;\n }\n if (datatype === \"boolean\") {\n return _parse_boolean;\n }\n if (datatype === \"undefined\") {\n return _parse_null;\n }\n return _parse_string;\n};\nvar SelectionInput = function (_a) {\n var _b;\n var io = _a.io, inputconverter = _a.inputconverter, parser = _a.parser;\n var options = ((_b = io.value_options) === null || _b === void 0 ? void 0 : _b.options) || [];\n console.log(\"options\", io.value_options, io);\n if (Array.isArray(options)) {\n options = {\n type: \"enum\",\n values: options,\n keys: options.map(function (x) { return (x === null ? \"None\" : x.toString()); }),\n nullable: false,\n };\n }\n options = options;\n if (options.nullable &&\n !options.values.includes(null) &&\n !options.keys.includes(\"None\")) {\n options.values.unshift(null);\n options.keys.unshift(\"None\");\n }\n //make key value pairs\n var optionsmap = [];\n for (var i = 0; i < options.values.length; i++) {\n // set const t to \"string\", \"number\",\"boolean\" \"null\" depenting on the type of options.values[i]\n var t = options.values[i] === null || options.values[i] === undefined\n ? \"undefined\"\n : typeof options.values[i];\n var v_1 = options.values[i];\n if (v_1 === null) {\n v_1 = \"null\";\n }\n if (v_1 === undefined) {\n v_1 = \"undefined\";\n }\n optionsmap.push([options.keys[i], v_1.toString(), t]);\n }\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var on_change_value = function (_a) {\n var _b;\n var value = _a.value, \n // label\n datatype = _a.datatype;\n // Use the existing parser or get a new one based on the datatype\n var p = parser || get_parser(datatype);\n var new_value = p(value);\n try {\n new_value = inputconverter[0](value);\n }\n catch (e) { }\n (_b = fnrf_zst.worker) === null || _b === void 0 ? void 0 : _b.set_io_value({\n nid: io.node,\n ioid: io.id,\n value: new_value,\n set_default: io.render_options.set_default,\n });\n };\n var on_change = function (e) {\n // Find the selected option element\n var selectedOption = e.target.options[e.target.selectedIndex];\n // Retrieve the datatype attribute from the selected option\n var datatype = selectedOption.getAttribute(\"datatype\");\n on_change_value({\n value: e.target.value,\n // label: selectedOption.text,\n datatype: datatype || \"string\",\n });\n };\n var v = io.value;\n if (v === null) {\n v = \"null\";\n }\n if (v === undefined) {\n v = \"undefined\";\n }\n var default_entry = optionsmap.find(function (option) { return option[1] === v; });\n var default_value;\n if (default_entry !== undefined) {\n default_value = {\n value: default_entry[1],\n label: default_entry[0],\n datatype: default_entry[2],\n };\n }\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_utils_select__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { className: \"nodedatainput styleddropdown\", options: optionsmap.map(function (option) { return ({\n value: option[1],\n label: option[0],\n datatype: option[2],\n }); }), defaultValue: default_value, onChange: function (newValue) {\n if (newValue === null)\n newValue = {\n value: \"<NoValue>\",\n label: \"<NoValue>\",\n datatype: \"string\",\n };\n on_change_value(newValue);\n } }));\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"select\", { value: v, onChange: on_change, disabled: io.connected, className: \"nodedatainput styleddropdown\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { value: \"<NoValue>\", disabled: true }, \"select\"),\n optionsmap.map(function (option) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { key: option[0], value: option[1], datatype: option[2] }, option[0])); })));\n};\nvar ColorInput = function (_a) {\n var _b;\n var io = _a.io;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var colorspace = ((_b = io.value_options) === null || _b === void 0 ? void 0 : _b.colorspace) || \"hex\";\n var on_change = function (colorconverter) {\n var _a;\n var new_value = \"<NoValue>\";\n if (colorconverter) {\n if (colorconverter[colorspace])\n new_value = colorconverter[colorspace]();\n else\n new_value = colorconverter.hex();\n }\n if (colorconverter === null)\n new_value = null;\n try {\n new_value = new_value;\n }\n catch (e) { }\n (_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.set_io_value({\n nid: io.node,\n ioid: io.id,\n value: new_value,\n set_default: io.render_options.set_default,\n });\n };\n var allow_null = false;\n if (typeof io.type !== \"string\" &&\n \"anyOf\" in io.type &&\n io.type.anyOf !== undefined) {\n allow_null = io.type.anyOf.some(function (x) { return x === \"None\"; });\n }\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_utils_colorpicker__WEBPACK_IMPORTED_MODULE_2__[\"default\"], { onChange: on_change, inicolordata: io.value, allow_null: allow_null, inicolorspace: colorspace }));\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/node/io/default_input_renderer.tsx?");
|
|
2752
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BooleanInput: () => (/* binding */ BooleanInput),\n/* harmony export */ ColorInput: () => (/* binding */ ColorInput),\n/* harmony export */ FloatInput: () => (/* binding */ FloatInput),\n/* harmony export */ IntegerInput: () => (/* binding */ IntegerInput),\n/* harmony export */ SelectionInput: () => (/* binding */ SelectionInput),\n/* harmony export */ StringInput: () => (/* binding */ StringInput)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../funcnodesreactflow */ \"./src/frontend/funcnodesreactflow/index.tsx\");\n/* harmony import */ var _utils_colorpicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/colorpicker */ \"./src/frontend/utils/colorpicker.tsx\");\n/* harmony import */ var _radix_ui_react_slider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slider */ \"../node_modules/@radix-ui/react-slider/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-tooltip */ \"../node_modules/@radix-ui/react-tooltip/dist/index.mjs\");\n/* harmony import */ var _utils_select__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/select */ \"./src/frontend/utils/select.tsx\");\n\n\n\n\n\n\n\nvar BooleanInput = function (_a) {\n var io = _a.io, inputconverter = _a.inputconverter;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var indeterminate = io.value === undefined;\n var cRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (!cRef.current)\n return;\n cRef.current.indeterminate = indeterminate;\n }, [cRef, indeterminate]);\n var on_change = function (e) {\n var _a;\n var new_value = e.target.checked;\n try {\n new_value = inputconverter[0](e.target.checked);\n }\n catch (e) { }\n (_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.set_io_value({\n nid: io.node,\n ioid: io.id,\n value: new_value,\n set_default: io.render_options.set_default,\n });\n };\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { ref: cRef, type: \"checkbox\", className: \"styledcheckbox booleaninput\", checked: !!inputconverter[1](io.value), onChange: on_change, disabled: io.connected }));\n};\nvar NumberInput = function (_a) {\n var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var io = _a.io, inputconverter = _a.inputconverter, _o = _a.parser, parser = _o === void 0 ? function (n) { return parseFloat(n); } : _o;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var _p = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(inputconverter[1](io.value)), tempvalue = _p[0], setTempValue = _p[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n setTempValue(inputconverter[1](io.value));\n }, [io.value]);\n var set_new_value = function (new_value) {\n var _a, _b, _c;\n new_value = parser(parseFloat(new_value.toString()).toString() // parse float for e notation\n );\n if (isNaN(new_value)) {\n new_value = \"<NoValue>\";\n setTempValue(\"\");\n }\n else {\n if (((_a = io.value_options) === null || _a === void 0 ? void 0 : _a.min) !== undefined &&\n new_value < io.value_options.min)\n new_value = io.value_options.min;\n if (((_b = io.value_options) === null || _b === void 0 ? void 0 : _b.max) !== undefined &&\n new_value > io.value_options.max)\n new_value = io.value_options.max;\n setTempValue(new_value.toString());\n }\n try {\n new_value = inputconverter[0](new_value);\n }\n catch (e) { }\n (_c = fnrf_zst.worker) === null || _c === void 0 ? void 0 : _c.set_io_value({\n nid: io.node,\n ioid: io.id,\n value: new_value,\n set_default: io.render_options.set_default,\n });\n };\n var on_change = function (e) {\n set_new_value(e.target.value);\n };\n var v = io.connected ? inputconverter[1](io.value) : tempvalue;\n if (v === undefined)\n v = (_b = io.value_options) === null || _b === void 0 ? void 0 : _b.min;\n if (v === undefined)\n v = (_c = io.value_options) === null || _c === void 0 ? void 0 : _c.max;\n if (v === undefined)\n v = \"\";\n if (v === null)\n v = \"\";\n if (((_d = io.value_options) === null || _d === void 0 ? void 0 : _d.max) !== undefined &&\n ((_e = io.value_options) === null || _e === void 0 ? void 0 : _e.min) !== undefined) {\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { style: { minWidth: \"100px\" }, className: \"SliderContainer\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_slider__WEBPACK_IMPORTED_MODULE_4__.Root, { className: \"SliderRoot\", value: [v === undefined ? (_f = io.value_options) === null || _f === void 0 ? void 0 : _f.min : v], min: (_g = io.value_options) === null || _g === void 0 ? void 0 : _g.min, max: (_h = io.value_options) === null || _h === void 0 ? void 0 : _h.max, step: io.value_options.step ||\n (((_j = io.value_options) === null || _j === void 0 ? void 0 : _j.max) - ((_k = io.value_options) === null || _k === void 0 ? void 0 : _k.min)) / 1000, disabled: io.connected, onValueCommit: function (value) {\n if (isNaN(value[0]))\n return;\n set_new_value(value[0]);\n }, onValueChange: function (value) {\n if (isNaN(value[0]))\n return;\n setTempValue(value[0].toString());\n } },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_slider__WEBPACK_IMPORTED_MODULE_4__.Track, { className: \"SliderTrack\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_slider__WEBPACK_IMPORTED_MODULE_4__.Range, { className: \"SliderRange\" })),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.TooltipProvider, null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Root, { open: true },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Trigger, { asChild: true },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_slider__WEBPACK_IMPORTED_MODULE_4__.Thumb, { className: \"SliderThumb\" })),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Content, { className: \"SliderTooltipContent\" }, v))))));\n }\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { type: \"text\", className: \"nodedatainput styledinput numberinput\", value: v, onChange: function (e) { return setTempValue(e.target.value); }, onBlur: on_change, onKeyDown: function (e) {\n // on key up add step to value\n if (e.key === \"ArrowUp\") {\n var step = io.render_options.step || 1;\n if (e.shiftKey)\n step *= 10;\n var new_value = (parseFloat(v) || 0) + step;\n // setTempValue(new_value.toString());\n set_new_value(new_value);\n return;\n }\n // on key down subtract step to value\n if (e.key === \"ArrowDown\") {\n var step = io.render_options.step || 1;\n if (e.shiftKey)\n step *= 10;\n var new_value = (parseFloat(v) || 0) - step;\n // setTempValue(new_value.toString());\n set_new_value(new_value);\n return;\n }\n //accept only numbers\n if (!/^[0-9.eE+-]$/.test(e.key) &&\n ![\"Backspace\", \"ArrowLeft\", \"ArrowRight\", \"Delete\", \"Tab\"].includes(e.key)) {\n e.preventDefault();\n }\n }, disabled: io.connected, step: io.render_options.step, min: (_l = io.value_options) === null || _l === void 0 ? void 0 : _l.min, max: (_m = io.value_options) === null || _m === void 0 ? void 0 : _m.max }));\n};\nvar FloatInput = function (_a) {\n var io = _a.io, inputconverter = _a.inputconverter;\n return NumberInput({ io: io, inputconverter: inputconverter, parser: parseFloat });\n};\nvar IntegerInput = function (_a) {\n var io = _a.io, inputconverter = _a.inputconverter;\n return NumberInput({ io: io, inputconverter: inputconverter, parser: parseInt });\n};\nvar StringInput = function (_a) {\n var io = _a.io, inputconverter = _a.inputconverter;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(inputconverter[1](io.value)), tempvalue = _b[0], setTempValue = _b[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n setTempValue(inputconverter[1](io.value));\n }, [io.value]);\n var on_change = function (e) {\n var _a;\n var new_value = e.target.value;\n if (!new_value)\n new_value = \"<NoValue>\";\n try {\n new_value = inputconverter[0](new_value);\n }\n catch (e) { }\n (_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.set_io_value({\n nid: io.node,\n ioid: io.id,\n value: new_value,\n set_default: io.render_options.set_default,\n });\n };\n var v = io.connected ? inputconverter[1](io.value) : tempvalue;\n if (v === undefined || v === null)\n v = \"\";\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { className: \"nodedatainput styledinput stringinput\", value: v, onChange: function (e) { return setTempValue(e.target.value); }, onBlur: on_change, disabled: io.connected }));\n};\nvar _parse_string = function (s) { return s; };\nvar _parse_number = function (s) { return parseFloat(s); };\nvar _parse_boolean = function (s) { return !!s; };\nvar _parse_null = function (s) { return (s === \"null\" ? null : s); };\nvar get_parser = function (datatype) {\n if (datatype === \"nuinputconvertermber\") {\n return _parse_number;\n }\n if (datatype === \"boolean\") {\n return _parse_boolean;\n }\n if (datatype === \"undefined\") {\n return _parse_null;\n }\n return _parse_string;\n};\nvar SelectionInput = function (_a) {\n var _b;\n var io = _a.io, inputconverter = _a.inputconverter, parser = _a.parser;\n var options = ((_b = io.value_options) === null || _b === void 0 ? void 0 : _b.options) || [];\n if (Array.isArray(options)) {\n options = {\n type: \"enum\",\n values: options,\n keys: options.map(function (x) { return (x === null ? \"None\" : x.toString()); }),\n nullable: false,\n };\n }\n if (options.type !== \"enum\") {\n options = {\n type: \"enum\",\n values: Object.values(options),\n keys: Object.keys(options),\n nullable: false,\n };\n }\n options = options;\n if (options.nullable &&\n !options.values.includes(null) &&\n !options.keys.includes(\"None\")) {\n options.values.unshift(null);\n options.keys.unshift(\"None\");\n }\n //make key value pairs\n var optionsmap = [];\n for (var i = 0; i < options.values.length; i++) {\n // set const t to \"string\", \"number\",\"boolean\" \"null\" depenting on the type of options.values[i]\n var t = options.values[i] === null || options.values[i] === undefined\n ? \"undefined\"\n : typeof options.values[i];\n var v_1 = options.values[i];\n if (v_1 === null) {\n v_1 = \"null\";\n }\n if (v_1 === undefined) {\n v_1 = \"undefined\";\n }\n optionsmap.push([options.keys[i], v_1.toString(), t]);\n }\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var on_change_value = function (_a) {\n var _b;\n var value = _a.value, \n // label\n datatype = _a.datatype;\n // Use the existing parser or get a new one based on the datatype\n var p = parser || get_parser(datatype);\n var new_value = p(value);\n try {\n new_value = inputconverter[0](value);\n }\n catch (e) { }\n (_b = fnrf_zst.worker) === null || _b === void 0 ? void 0 : _b.set_io_value({\n nid: io.node,\n ioid: io.id,\n value: new_value,\n set_default: io.render_options.set_default,\n });\n };\n var on_change = function (e) {\n // Find the selected option element\n var selectedOption = e.target.options[e.target.selectedIndex];\n // Retrieve the datatype attribute from the selected option\n var datatype = selectedOption.getAttribute(\"datatype\");\n on_change_value({\n value: e.target.value,\n // label: selectedOption.text,\n datatype: datatype || \"string\",\n });\n };\n var v = io.value;\n if (v === null) {\n v = \"null\";\n }\n if (v === undefined) {\n v = \"undefined\";\n }\n var default_entry = optionsmap.find(function (option) { return option[1] === v; });\n var default_value;\n if (default_entry !== undefined) {\n default_value = {\n value: default_entry[1],\n label: default_entry[0],\n datatype: default_entry[2],\n };\n }\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_utils_select__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { className: \"nodedatainput styleddropdown\", options: optionsmap.map(function (option) { return ({\n value: option[1],\n label: option[0],\n datatype: option[2],\n }); }), defaultValue: default_value, onChange: function (newValue) {\n if (newValue === null)\n newValue = {\n value: \"<NoValue>\",\n label: \"<NoValue>\",\n datatype: \"string\",\n };\n on_change_value(newValue);\n } }));\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"select\", { value: v, onChange: on_change, disabled: io.connected, className: \"nodedatainput styleddropdown\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { value: \"<NoValue>\", disabled: true }, \"select\"),\n optionsmap.map(function (option) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"option\", { key: option[0], value: option[1], datatype: option[2] }, option[0])); })));\n};\nvar ColorInput = function (_a) {\n var _b;\n var io = _a.io;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var colorspace = ((_b = io.value_options) === null || _b === void 0 ? void 0 : _b.colorspace) || \"hex\";\n var on_change = function (colorconverter) {\n var _a;\n var new_value = \"<NoValue>\";\n if (colorconverter) {\n if (colorconverter[colorspace])\n new_value = colorconverter[colorspace]();\n else\n new_value = colorconverter.hex();\n }\n if (colorconverter === null)\n new_value = null;\n try {\n new_value = new_value;\n }\n catch (e) { }\n (_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.set_io_value({\n nid: io.node,\n ioid: io.id,\n value: new_value,\n set_default: io.render_options.set_default,\n });\n };\n var allow_null = false;\n if (typeof io.type !== \"string\" &&\n \"anyOf\" in io.type &&\n io.type.anyOf !== undefined) {\n allow_null = io.type.anyOf.some(function (x) { return x === \"None\"; });\n }\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_utils_colorpicker__WEBPACK_IMPORTED_MODULE_2__[\"default\"], { onChange: on_change, inicolordata: io.value, allow_null: allow_null, inicolorspace: colorspace }));\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/node/io/default_input_renderer.tsx?");
|
|
2753
2753
|
|
|
2754
2754
|
/***/ }),
|
|
2755
2755
|
|
|
@@ -2760,7 +2760,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2760
2760
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2761
2761
|
|
|
2762
2762
|
"use strict";
|
|
2763
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InLineOutput: () => (/* binding */ InLineOutput)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nvar InLineOutput = function (_a) {\n var io = _a.io;\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = \"\";\n }\n else {\n value = JSON.stringify(
|
|
2763
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InLineOutput: () => (/* binding */ InLineOutput)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../datarenderer/rendermappings */ \"./src/frontend/datarenderer/rendermappings.tsx\");\n\n\nvar InLineOutput = function (_a) {\n var io = _a.io, typestring = _a.typestring;\n var InLineRenderer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_1__.RenderMappingContext).InLineRenderer;\n if (typestring && InLineRenderer[typestring]) {\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, InLineRenderer[typestring]({ io: io }));\n }\n var value = io.fullvalue;\n if (value == undefined)\n value = io.value;\n if (value === undefined) {\n value = \"\";\n }\n else {\n value = JSON.stringify(value).replace(/\\\\n/g, \"\\n\"); //respect \"\\n\" in strings\n }\n //truncate the string if it is too long\n if (value.length > 63) {\n value = value.slice(0, 60) + \"...\";\n }\n return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, value);\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/node/io/default_output_render.tsx?");
|
|
2764
2764
|
|
|
2765
2765
|
/***/ }),
|
|
2766
2766
|
|
|
@@ -2793,7 +2793,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2793
2793
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2794
2794
|
|
|
2795
2795
|
"use strict";
|
|
2796
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HandleWithPreview: () => (/* binding */ HandleWithPreview),\n/* harmony export */ pick_best_io_type: () => (/* binding */ pick_best_io_type)\n/* harmony export */ });\n/* harmony import */ var _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-tooltip */ \"../node_modules/@radix-ui/react-tooltip/dist/index.mjs\");\n/* harmony import */ var _mui_icons_material_LockOpen__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/icons-material/LockOpen */ \"../node_modules/@mui/icons-material/LockOpen.js\");\n/* harmony import */ var _mui_icons_material_Lock__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/icons-material/Lock */ \"../node_modules/@mui/icons-material/Lock.js\");\n/* harmony import */ var _mui_icons_material_Fullscreen__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/icons-material/Fullscreen */ \"../node_modules/@mui/icons-material/Fullscreen.js\");\n/* harmony import */ var _io_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./io.scss */ \"./src/frontend/node/io/io.scss\");\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/core/dist/esm/index.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dialog */ \"./src/frontend/dialog.tsx\");\n/* harmony import */ var _handle_renderer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./handle_renderer */ \"./src/frontend/node/io/handle_renderer.tsx\");\n/* harmony import */ var _datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../datarenderer/rendermappings */ \"./src/frontend/datarenderer/rendermappings.tsx\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\n\nvar pick_best_io_type = function (iot, typemap) {\n // check if iot is string\n if (typeof iot === \"string\") {\n if (iot in typemap) {\n return [typemap[iot], iot];\n }\n return [iot, iot];\n }\n if (\"allOf\" in iot && iot.allOf !== undefined) {\n return [undefined, undefined];\n }\n if (\"anyOf\" in iot && iot.anyOf !== undefined) {\n var picks = iot.anyOf.map(function (x) { return pick_best_io_type(x, typemap); });\n for (var _i = 0, picks_1 = picks; _i < picks_1.length; _i++) {\n var pick = picks_1[_i];\n switch (pick[0]) {\n case \"bool\":\n return [\"bool\", pick[1]];\n case \"enum\":\n return [\"enum\", pick[1]];\n case \"float\":\n return [\"float\", pick[1]];\n case \"int\":\n return [\"int\", pick[1]];\n case \"string\":\n return [\"string\", pick[1]];\n case \"str\":\n return [\"string\", pick[1]];\n }\n }\n return [undefined, undefined];\n }\n if (!(\"type\" in iot) || iot.type === undefined) {\n return [undefined, undefined];\n }\n if (iot.type === \"enum\") {\n return [\"enum\", \"enum\"];\n }\n return [undefined, undefined];\n};\nvar HandleWithPreview = function (_a) {\n var io = _a.io, typestring = _a.typestring, preview = _a.preview, props = __rest(_a, [\"io\", \"typestring\", \"preview\"]);\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false), locked = _b[0], setLocked = _b[1];\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false), opened = _c[0], setOpened = _c[1];\n var _d = io\n ? (0,_handle_renderer__WEBPACK_IMPORTED_MODULE_3__.PreviewHandleDataRendererForIo)(io)\n : [undefined, undefined], pvhandle = _d[0], overlayhandle = _d[1];\n return (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Provider, null,\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Root, { open: locked || opened, onOpenChange: setOpened },\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Trigger, { asChild: true },\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(reactflow__WEBPACK_IMPORTED_MODULE_6__.Handle, __assign({ id: io.id }, props))),\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Portal, null,\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Content, { className: \"iotooltipcontent\", sideOffset: 5 },\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", { className: \"iotooltip_container\" },\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", { className: \"iotooltip_header\" },\n locked ? (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_mui_icons_material_Lock__WEBPACK_IMPORTED_MODULE_7__[\"default\"], { onClick: function () { return setLocked(false); } })) : (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_mui_icons_material_LockOpen__WEBPACK_IMPORTED_MODULE_8__[\"default\"], { onClick: function () { return setLocked(true); } })),\n overlayhandle && (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_dialog__WEBPACK_IMPORTED_MODULE_2__[\"default\"], { trigger: react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_mui_icons_material_Fullscreen__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null), onOpenChange: function (open) {\n if (open) {\n io.try_get_full_value();\n }\n setLocked(open);\n } }, react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_4__.DynamicComponentLoader, { component: overlayhandle, io: io })))),\n pvhandle ? (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_4__.DynamicComponentLoader, { component: pvhandle, io: io })) : (\"no preview available for \\\"\".concat(typestring, \"\\\"\"))),\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Arrow, { className: \"iotooltipcontentarrow\" }))))));\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/node/io/io.tsx?");
|
|
2796
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HandleWithPreview: () => (/* binding */ HandleWithPreview),\n/* harmony export */ pick_best_io_type: () => (/* binding */ pick_best_io_type)\n/* harmony export */ });\n/* harmony import */ var _radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-tooltip */ \"../node_modules/@radix-ui/react-tooltip/dist/index.mjs\");\n/* harmony import */ var _mui_icons_material_LockOpen__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/icons-material/LockOpen */ \"../node_modules/@mui/icons-material/LockOpen.js\");\n/* harmony import */ var _mui_icons_material_Lock__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/icons-material/Lock */ \"../node_modules/@mui/icons-material/Lock.js\");\n/* harmony import */ var _mui_icons_material_Fullscreen__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/icons-material/Fullscreen */ \"../node_modules/@mui/icons-material/Fullscreen.js\");\n/* harmony import */ var _io_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./io.scss */ \"./src/frontend/node/io/io.scss\");\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/core/dist/esm/index.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dialog */ \"./src/frontend/dialog.tsx\");\n/* harmony import */ var _handle_renderer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./handle_renderer */ \"./src/frontend/node/io/handle_renderer.tsx\");\n/* harmony import */ var _datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../datarenderer/rendermappings */ \"./src/frontend/datarenderer/rendermappings.tsx\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\n\nvar pick_best_io_type = function (iot, typemap) {\n // check if iot is string\n if (typeof iot === \"string\") {\n if (iot in typemap) {\n return [typemap[iot], iot];\n }\n return [iot, iot];\n }\n if (\"allOf\" in iot && iot.allOf !== undefined) {\n return [undefined, undefined];\n }\n if (\"anyOf\" in iot && iot.anyOf !== undefined) {\n var picks = iot.anyOf.map(function (x) { return pick_best_io_type(x, typemap); });\n for (var _i = 0, picks_1 = picks; _i < picks_1.length; _i++) {\n var pick = picks_1[_i];\n switch (pick[0]) {\n case \"bool\":\n return [\"bool\", pick[1]];\n case \"enum\":\n return [\"enum\", pick[1]];\n case \"float\":\n return [\"float\", pick[1]];\n case \"int\":\n return [\"int\", pick[1]];\n case \"string\":\n return [\"string\", pick[1]];\n case \"str\":\n return [\"string\", pick[1]];\n }\n }\n return [undefined, undefined];\n }\n if (!(\"type\" in iot) || iot.type === undefined) {\n return [undefined, undefined];\n }\n if (iot.type === \"enum\") {\n return [\"enum\", \"enum\"];\n }\n return [undefined, undefined];\n};\nvar HandleWithPreview = function (_a) {\n var io = _a.io, typestring = _a.typestring, preview = _a.preview, props = __rest(_a, [\"io\", \"typestring\", \"preview\"]);\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false), locked = _b[0], setLocked = _b[1];\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false), opened = _c[0], setOpened = _c[1];\n var _d = io\n ? (0,_handle_renderer__WEBPACK_IMPORTED_MODULE_3__.PreviewHandleDataRendererForIo)(io)\n : [undefined, undefined], pvhandle = _d[0], overlayhandle = _d[1];\n return (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Provider, null,\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Root, { open: locked || opened, onOpenChange: setOpened },\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Trigger, { asChild: true },\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(reactflow__WEBPACK_IMPORTED_MODULE_6__.Handle, __assign({ id: io.id }, props))),\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Portal, null,\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Content, { className: \"iotooltipcontent\", sideOffset: 5 },\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", { className: \"iotooltip_container\" },\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(\"div\", { className: \"iotooltip_header\" },\n locked ? (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_mui_icons_material_Lock__WEBPACK_IMPORTED_MODULE_7__[\"default\"], { onClick: function () { return setLocked(false); } })) : (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_mui_icons_material_LockOpen__WEBPACK_IMPORTED_MODULE_8__[\"default\"], { onClick: function () { return setLocked(true); } })),\n overlayhandle && (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_dialog__WEBPACK_IMPORTED_MODULE_2__[\"default\"], { trigger: react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_mui_icons_material_Fullscreen__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null), onOpenChange: function (open) {\n if (open) {\n if (io.try_get_full_value)\n io.try_get_full_value();\n }\n setLocked(open);\n } }, react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_4__.DynamicComponentLoader, { component: overlayhandle, io: io })))),\n pvhandle ? (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_4__.DynamicComponentLoader, { component: pvhandle, io: io })) : (\"no preview available for \\\"\".concat(typestring, \"\\\"\"))),\n react__WEBPACK_IMPORTED_MODULE_1___default().createElement(_radix_ui_react_tooltip__WEBPACK_IMPORTED_MODULE_5__.Arrow, { className: \"iotooltipcontentarrow\" }))))));\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/node/io/io.tsx?");
|
|
2797
2797
|
|
|
2798
2798
|
/***/ }),
|
|
2799
2799
|
|
|
@@ -2804,7 +2804,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2804
2804
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2805
2805
|
|
|
2806
2806
|
"use strict";
|
|
2807
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../.. */ \"./src/frontend/index.tsx\");\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/core/dist/esm/index.mjs\");\n/* harmony import */ var _io__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./io */ \"./src/frontend/node/io/io.tsx\");\n/* harmony import */ var _default_input_renderer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./default_input_renderer */ \"./src/frontend/node/io/default_input_renderer.tsx\");\n/* harmony import */ var _datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../datarenderer/rendermappings */ \"./src/frontend/datarenderer/rendermappings.tsx\");\n\n\n\n\n\n\n\nvar INPUTCONVERTER = {\n \"\": [function (v) { return v; }, function (v) { return v; }],\n str_to_json: [\n function (v) {\n return JSON.parse(v);\n },\n function (v) {\n if (typeof v === \"string\")\n return v;\n return JSON.stringify(v);\n },\n ],\n str_to_list: [\n function (v) {\n try {\n var a = JSON.parse(v);\n if (Array.isArray(a))\n return a;\n return [a];\n }\n catch (e) {\n try {\n return JSON.parse(\"[\" + v + \"]\");\n }\n catch (e) { }\n }\n throw new Error(\"Invalid list\");\n },\n function (v) { return JSON.stringify(v); },\n ],\n};\nvar NodeInput = function (_a) {\n var _b, _c, _d;\n var io = _a.io;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(___WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var render = fnrf_zst.render_options();\n var _e = (0,_io__WEBPACK_IMPORTED_MODULE_2__.pick_best_io_type)(io.render_options.type, render.typemap || {}), typestring = _e[0], otypestring = _e[1];\n var Inputrenderer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_4__.RenderMappingContext).Inputrenderer;\n var Input = typestring\n ? ((_b = io.value_options) === null || _b === void 0 ? void 0 : _b.options)\n ? _default_input_renderer__WEBPACK_IMPORTED_MODULE_3__.SelectionInput\n : Inputrenderer[typestring]\n : undefined;\n
|
|
2807
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../.. */ \"./src/frontend/index.tsx\");\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/core/dist/esm/index.mjs\");\n/* harmony import */ var _io__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./io */ \"./src/frontend/node/io/io.tsx\");\n/* harmony import */ var _default_input_renderer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./default_input_renderer */ \"./src/frontend/node/io/default_input_renderer.tsx\");\n/* harmony import */ var _datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../datarenderer/rendermappings */ \"./src/frontend/datarenderer/rendermappings.tsx\");\n\n\n\n\n\n\n\nvar INPUTCONVERTER = {\n \"\": [function (v) { return v; }, function (v) { return v; }],\n str_to_json: [\n function (v) {\n return JSON.parse(v);\n },\n function (v) {\n if (typeof v === \"string\")\n return v;\n return JSON.stringify(v);\n },\n ],\n str_to_list: [\n function (v) {\n try {\n var a = JSON.parse(v);\n if (Array.isArray(a))\n return a;\n return [a];\n }\n catch (e) {\n try {\n return JSON.parse(\"[\" + v + \"]\");\n }\n catch (e) { }\n }\n throw new Error(\"Invalid list\");\n },\n function (v) { return JSON.stringify(v); },\n ],\n};\nvar NodeInput = function (_a) {\n var _b, _c, _d;\n var io = _a.io;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(___WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var render = fnrf_zst.render_options();\n var _e = (0,_io__WEBPACK_IMPORTED_MODULE_2__.pick_best_io_type)(io.render_options.type, render.typemap || {}), typestring = _e[0], otypestring = _e[1];\n var Inputrenderer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_4__.RenderMappingContext).Inputrenderer;\n var Input = typestring\n ? ((_b = io.value_options) === null || _b === void 0 ? void 0 : _b.options)\n ? _default_input_renderer__WEBPACK_IMPORTED_MODULE_3__.SelectionInput\n : Inputrenderer[typestring]\n : undefined;\n var inputconverterf = INPUTCONVERTER[(_d = (otypestring && ((_c = render.inputconverter) === null || _c === void 0 ? void 0 : _c[otypestring]))) !== null && _d !== void 0 ? _d : \"\"];\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeinput\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_io__WEBPACK_IMPORTED_MODULE_2__.HandleWithPreview, { io: io, typestring: typestring, position: reactflow__WEBPACK_IMPORTED_MODULE_5__.Position.Left, type: \"target\" }),\n Input && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"iovaluefield nodrag\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Input, { io: io, inputconverter: inputconverterf }))),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"ioname\" }, io.name)));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NodeInput);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/node/io/nodeinput.tsx?");
|
|
2808
2808
|
|
|
2809
2809
|
/***/ }),
|
|
2810
2810
|
|
|
@@ -2815,7 +2815,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2815
2815
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2816
2816
|
|
|
2817
2817
|
"use strict";
|
|
2818
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/core/dist/esm/index.mjs\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../.. */ \"./src/frontend/index.tsx\");\n/* harmony import */ var _io__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./io */ \"./src/frontend/node/io/io.tsx\");\n/* harmony import */ var _default_output_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./default_output_render */ \"./src/frontend/node/io/default_output_render.tsx\");\n\n\n\n\n\n\nvar NodeOutput = function (_a) {\n var io = _a.io;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(___WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var render = fnrf_zst.render_options();\n var typestring = (0,_io__WEBPACK_IMPORTED_MODULE_2__.pick_best_io_type)(io.type, render.typemap || {})[0];\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeoutput\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_io__WEBPACK_IMPORTED_MODULE_2__.HandleWithPreview, { io: io, typestring: typestring, position: reactflow__WEBPACK_IMPORTED_MODULE_4__.Position.Right, type: \"source\" }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"ioname\" }, io.name),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"iovaluefield\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_default_output_render__WEBPACK_IMPORTED_MODULE_3__.InLineOutput, { io: io }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NodeOutput);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/node/io/nodeoutput.tsx?");
|
|
2818
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/core/dist/esm/index.mjs\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../.. */ \"./src/frontend/index.tsx\");\n/* harmony import */ var _io__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./io */ \"./src/frontend/node/io/io.tsx\");\n/* harmony import */ var _default_output_render__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./default_output_render */ \"./src/frontend/node/io/default_output_render.tsx\");\n\n\n\n\n\n\nvar NodeOutput = function (_a) {\n var io = _a.io;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(___WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var render = fnrf_zst.render_options();\n var typestring = (0,_io__WEBPACK_IMPORTED_MODULE_2__.pick_best_io_type)(io.type, render.typemap || {})[0];\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeoutput\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_io__WEBPACK_IMPORTED_MODULE_2__.HandleWithPreview, { io: io, typestring: typestring, position: reactflow__WEBPACK_IMPORTED_MODULE_4__.Position.Right, type: \"source\" }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"ioname\" }, io.name),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"iovaluefield\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_default_output_render__WEBPACK_IMPORTED_MODULE_3__.InLineOutput, { io: io, typestring: typestring }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NodeOutput);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/node/io/nodeoutput.tsx?");
|
|
2819
2819
|
|
|
2820
2820
|
/***/ }),
|
|
2821
2821
|
|
|
@@ -2826,7 +2826,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2826
2826
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2827
2827
|
|
|
2828
2828
|
"use strict";
|
|
2829
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/icons-material/ExpandLess */ \"../node_modules/@mui/icons-material/ExpandLess.js\");\n/* harmony import */ var _mui_icons_material_Lan__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/icons-material/Lan */ \"../node_modules/@mui/icons-material/Lan.js\");\n/* harmony import */ var _mui_icons_material_PlayCircleFilled__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/icons-material/PlayCircleFilled */ \"../node_modules/@mui/icons-material/PlayCircleFilled.js\");\n/* harmony import */ var _node_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node.scss */ \"./src/frontend/node/node.scss\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! .. */ \"./src/frontend/index.tsx\");\n/* harmony import */ var _io__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./io */ \"./src/frontend/node/io/index.tsx\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dialog */ \"./src/frontend/dialog.tsx\");\n/* harmony import */ var _body_data_renderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./body_data_renderer */ \"./src/frontend/node/body_data_renderer.tsx\");\n/* harmony import */ var _datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../datarenderer/rendermappings */ \"./src/frontend/datarenderer/rendermappings.tsx\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\n\n\n\n\n\n\n\nvar NodeHeader = function (_a) {\n var node_data = _a.node_data;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(___WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var clicktrigger = function () {\n fnrf_zst.on_node_action({\n type: \"trigger\",\n from_remote: false,\n id: node_data.id,\n });\n };\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeheader\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeheader_element\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_icons_material_PlayCircleFilled__WEBPACK_IMPORTED_MODULE_7__[\"default\"], { fontSize: \"inherit\", className: \"triggerbutton\", onClick: clicktrigger }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_icons_material_Lan__WEBPACK_IMPORTED_MODULE_8__[\"default\"], { fontSize: \"inherit\", onClick: function () { return __awaiter(void 0, void 0, void 0, function () {\n var _a, _b;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n console.log(\"get_node_status\");\n _b = (_a = console).log;\n return [4 /*yield*/, ((_c = fnrf_zst.worker) === null || _c === void 0 ? void 0 : _c.get_node_status(node_data.id))];\n case 1:\n _b.apply(_a, [_d.sent()]);\n return [2 /*return*/];\n }\n });\n }); } })),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeheader_element nodeheader_title\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeheader_title_text\" }, node_data.node_name)),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeheader_element\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_9__[\"default\"], { fontSize: \"inherit\" }))));\n};\nvar NodeDataRenderer = function (_a) {\n var _b, _c, _d, _e;\n var node_data = _a.node_data;\n var io = ((_c = (_b = node_data.render_options) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.src)\n ? node_data.io[(_e = (_d = node_data.render_options) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.src]\n : undefined;\n var _f = io\n ? (0,_body_data_renderer__WEBPACK_IMPORTED_MODULE_5__.BodyDataRendererForIo)(io)\n : [undefined, undefined], pvhandle = _f[0], overlayhandle = _f[1];\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodrag nodedatabody\" }, pvhandle && io && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_dialog__WEBPACK_IMPORTED_MODULE_4__[\"default\"], { trigger: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_6__.DynamicComponentLoader, { component: pvhandle, io: io })), onOpenChange: function (open) {\n if (open) {\n io === null || io === void 0 ? void 0 : io.try_get_full_value();\n }\n } }, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_6__.DynamicComponentLoader, { component: overlayhandle, io: io })))));\n};\nvar NodeBody = function (_a) {\n var _b, _c;\n var node_data = _a.node_data;\n var inputs = Object.values(node_data.io).filter(function (io) { return io.is_input; });\n var outputs = Object.values(node_data.io).filter(function (io) { return !io.is_input; });\n if ((_c = (_b = node_data.render_options) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.src) {\n }\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodebody\" },\n outputs.map(function (io) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_io__WEBPACK_IMPORTED_MODULE_3__.NodeOutput, { key: io.id, io: io })); }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NodeDataRenderer, { node_data: node_data }),\n inputs.map(function (io) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_io__WEBPACK_IMPORTED_MODULE_3__.NodeInput, { key: io.id, io: io })); })));\n};\nvar NodeName = function (_a) {\n var node_data = _a.node_data;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(node_data.name), name = _b[0], setName = _b[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n setName(node_data.name);\n }, [node_data]);\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(___WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var handleChange = function (event) {\n setName(event.target.value);\n };\n var finalSetName = function (e) {\n var new_name = e.target.value;\n fnrf_zst.on_node_action({\n type: \"update\",\n from_remote: false,\n id: node_data.id,\n node: { name: new_name },\n });\n };\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { className: \"nodename_input\", value: name, onChange: handleChange, onBlur: finalSetName }));\n};\nvar NodeFooter = function (_a) {\n var node_data = _a.node_data;\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodefooter\" }, node_data.error && react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeerror\" }, node_data.error)));\n};\n/**\n * A generic function to deeply merge two objects of type T.\n *\n * @param {T} target - The target object to be merged.\n * @param {DeepPartial<T>} source - The source object to merge into the target. All properties of this object are optional.\n *\n * @returns {Object} An object containing the merged object (new_obj) and a boolean indicating if there was a change (change).\n *\n * @throws {Type 'string' cannot be used to index type 'T'} This error is ignored using the @ts-ignore directive because we are dynamically accessing properties of a generic type T.\n */\nvar DefaultNode = function (_a) {\n var data = _a.data;\n // Use the NodeStore to get the data for the node.\n var storedata = data.UseNodeStore();\n var collapsed = storedata.frontend.collapsed || false;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), visualTrigger = _b[0], setVisualTrigger = _b[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n var timeoutId;\n // When in_trigger becomes true, set visualTrigger to true immediately\n if (storedata.in_trigger) {\n setVisualTrigger(true);\n }\n else if (visualTrigger) {\n // When in_trigger becomes false, wait for a minimum duration before setting visualTrigger to false\n timeoutId = setTimeout(function () { return setVisualTrigger(false); }, 200); // 50ms or any other duration you see fit\n }\n return function () { return clearTimeout(timeoutId); }; // Cleanup timeout on component unmount or state changes\n }, [storedata.in_trigger, visualTrigger]);\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"innernode\" +\n (visualTrigger ? \" intrigger\" : \"\") +\n (storedata.error ? \" error\" : \"\") },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NodeHeader, { node_data: storedata }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NodeName, { node_data: storedata }),\n collapsed ? null : react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NodeBody, { node_data: storedata }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NodeFooter, { node_data: storedata }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DefaultNode);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/node/node.tsx?");
|
|
2829
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/icons-material/ExpandLess */ \"../node_modules/@mui/icons-material/ExpandLess.js\");\n/* harmony import */ var _mui_icons_material_Lan__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/icons-material/Lan */ \"../node_modules/@mui/icons-material/Lan.js\");\n/* harmony import */ var _mui_icons_material_PlayCircleFilled__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/icons-material/PlayCircleFilled */ \"../node_modules/@mui/icons-material/PlayCircleFilled.js\");\n/* harmony import */ var _node_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node.scss */ \"./src/frontend/node/node.scss\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! .. */ \"./src/frontend/index.tsx\");\n/* harmony import */ var _io__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./io */ \"./src/frontend/node/io/index.tsx\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dialog */ \"./src/frontend/dialog.tsx\");\n/* harmony import */ var _body_data_renderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./body_data_renderer */ \"./src/frontend/node/body_data_renderer.tsx\");\n/* harmony import */ var _datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../datarenderer/rendermappings */ \"./src/frontend/datarenderer/rendermappings.tsx\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\n\n\n\n\n\n\n\nvar NodeHeader = function (_a) {\n var node_data = _a.node_data;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(___WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var clicktrigger = function () {\n fnrf_zst.on_node_action({\n type: \"trigger\",\n from_remote: false,\n id: node_data.id,\n });\n };\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeheader\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeheader_element\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_icons_material_PlayCircleFilled__WEBPACK_IMPORTED_MODULE_7__[\"default\"], { fontSize: \"inherit\", className: \"triggerbutton\", onClick: clicktrigger }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_icons_material_Lan__WEBPACK_IMPORTED_MODULE_8__[\"default\"], { fontSize: \"inherit\", onClick: function () { return __awaiter(void 0, void 0, void 0, function () {\n var _a, _b, _c;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _b = (_a = fnrf_zst.logger).info;\n _c = [\"nodestatus\"];\n return [4 /*yield*/, ((_d = fnrf_zst.worker) === null || _d === void 0 ? void 0 : _d.get_node_status(node_data.id))];\n case 1:\n _b.apply(_a, _c.concat([_e.sent()]));\n return [2 /*return*/];\n }\n });\n }); } })),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeheader_element nodeheader_title\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeheader_title_text\" }, node_data.node_name)),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeheader_element\" },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_9__[\"default\"], { fontSize: \"inherit\" }))));\n};\nvar NodeDataRenderer = function (_a) {\n var _b, _c, _d, _e;\n var node_data = _a.node_data;\n var io = ((_c = (_b = node_data.render_options) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.src)\n ? node_data.io[(_e = (_d = node_data.render_options) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.src]\n : undefined;\n var _f = io\n ? (0,_body_data_renderer__WEBPACK_IMPORTED_MODULE_5__.BodyDataRendererForIo)(io)\n : [undefined, undefined], pvhandle = _f[0], overlayhandle = _f[1];\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodrag nodedatabody\" }, pvhandle && io && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_dialog__WEBPACK_IMPORTED_MODULE_4__[\"default\"], { trigger: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_6__.DynamicComponentLoader, { component: pvhandle, io: io })), onOpenChange: function (open) {\n if (open) {\n if (io === null || io === void 0 ? void 0 : io.try_get_full_value)\n io === null || io === void 0 ? void 0 : io.try_get_full_value();\n }\n } }, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_6__.DynamicComponentLoader, { component: overlayhandle, io: io })))));\n};\nvar NodeBody = function (_a) {\n var _b, _c;\n var node_data = _a.node_data;\n var inputs = Object.values(node_data.io).filter(function (io) { return io.is_input; });\n var outputs = Object.values(node_data.io).filter(function (io) { return !io.is_input; });\n if ((_c = (_b = node_data.render_options) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.src) {\n }\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodebody\" },\n outputs.map(function (io) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_io__WEBPACK_IMPORTED_MODULE_3__.NodeOutput, { key: io.id, io: io })); }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NodeDataRenderer, { node_data: node_data }),\n inputs.map(function (io) { return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_io__WEBPACK_IMPORTED_MODULE_3__.NodeInput, { key: io.id, io: io })); })));\n};\nvar NodeName = function (_a) {\n var node_data = _a.node_data;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(node_data.name), name = _b[0], setName = _b[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n setName(node_data.name);\n }, [node_data]);\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(___WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var handleChange = function (event) {\n setName(event.target.value);\n };\n var finalSetName = function (e) {\n var new_name = e.target.value;\n fnrf_zst.on_node_action({\n type: \"update\",\n from_remote: false,\n id: node_data.id,\n node: { name: new_name },\n });\n };\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", { className: \"nodename_input\", value: name, onChange: handleChange, onBlur: finalSetName }));\n};\nvar NodeFooter = function (_a) {\n var node_data = _a.node_data;\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodefooter\" }, node_data.error && react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"nodeerror\" }, node_data.error)));\n};\n/**\n * A generic function to deeply merge two objects of type T.\n *\n * @param {T} target - The target object to be merged.\n * @param {DeepPartial<T>} source - The source object to merge into the target. All properties of this object are optional.\n *\n * @returns {Object} An object containing the merged object (new_obj) and a boolean indicating if there was a change (change).\n *\n * @throws {Type 'string' cannot be used to index type 'T'} This error is ignored using the @ts-ignore directive because we are dynamically accessing properties of a generic type T.\n */\nvar DefaultNode = function (_a) {\n var data = _a.data;\n // Use the NodeStore to get the data for the node.\n var storedata = data.UseNodeStore();\n var collapsed = storedata.frontend.collapsed || false;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), visualTrigger = _b[0], setVisualTrigger = _b[1];\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n var timeoutId;\n // When in_trigger becomes true, set visualTrigger to true immediately\n if (storedata.in_trigger) {\n setVisualTrigger(true);\n }\n else if (visualTrigger) {\n // When in_trigger becomes false, wait for a minimum duration before setting visualTrigger to false\n timeoutId = setTimeout(function () { return setVisualTrigger(false); }, 200); // 50ms or any other duration you see fit\n }\n return function () { return clearTimeout(timeoutId); }; // Cleanup timeout on component unmount or state changes\n }, [storedata.in_trigger, visualTrigger]);\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", { className: \"innernode\" +\n (visualTrigger ? \" intrigger\" : \"\") +\n (storedata.error ? \" error\" : \"\") },\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NodeHeader, { node_data: storedata }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NodeName, { node_data: storedata }),\n collapsed ? null : react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NodeBody, { node_data: storedata }),\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NodeFooter, { node_data: storedata }))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DefaultNode);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/node/node.tsx?");
|
|
2830
2830
|
|
|
2831
2831
|
/***/ }),
|
|
2832
2832
|
|
|
@@ -2859,7 +2859,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2859
2859
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2860
2860
|
|
|
2861
2861
|
"use strict";
|
|
2862
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-select */ \"../node_modules/react-select/dist/react-select.esm.js\");\n/* harmony import */ var _select_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select.scss */ \"./src/frontend/utils/select.scss\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\nvar CustomSelect = function (_a) {\n var options = _a.options,
|
|
2862
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-select */ \"../node_modules/react-select/dist/react-select.esm.js\");\n/* harmony import */ var _select_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select.scss */ \"./src/frontend/utils/select.scss\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\nvar CustomSelect = function (_a) {\n var options = _a.options, items_per_page = _a.items_per_page, className = _a.className, defaultValue = _a.defaultValue, onChange = _a.onChange;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"), searchInput = _b[0], setSearchInput = _b[1];\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0), currentPage = _c[0], setCurrentPage = _c[1];\n var handleInputChange = function (inputValue) {\n setSearchInput(inputValue.toLowerCase());\n setCurrentPage(0);\n };\n var filteredOptions = options.filter(function (option) {\n return (option.label.toLowerCase().includes(searchInput) ||\n option.value.toLowerCase().includes(searchInput));\n });\n var paginatedOptions;\n if (items_per_page !== undefined) {\n paginatedOptions = filteredOptions.slice(currentPage * items_per_page, (currentPage + 1) * items_per_page);\n }\n else {\n paginatedOptions = filteredOptions;\n }\n var customStyles = {\n control: function (base) { return (__assign(__assign({}, base), { minHeight: undefined })); },\n };\n return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(react_select__WEBPACK_IMPORTED_MODULE_2__[\"default\"], { options: paginatedOptions, onInputChange: handleInputChange, onChange: onChange, inputValue: searchInput, isSearchable: true, placeholder: \"Select an option...\", \n // menuIsOpen={true}\n className: className, unstyled: true, styles: customStyles, classNamePrefix: \"styled-select\", defaultValue: defaultValue, value: defaultValue }));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CustomSelect);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/frontend/utils/select.tsx?");
|
|
2863
2863
|
|
|
2864
2864
|
/***/ }),
|
|
2865
2865
|
|
|
@@ -2881,7 +2881,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2881
2881
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2882
2882
|
|
|
2883
2883
|
"use strict";
|
|
2884
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\nvar FuncNodesWorker = /** @class */ (function () {\n function FuncNodesWorker(data) {\n var _this = this;\n this.uuid = data.uuid;\n this.on_error = data.on_error || console.error;\n this.messagePromises = new Map();\n this._local_nodeupdates = new Map();\n this._nodeupdatetimer = setTimeout(function () {\n _this.sync_local_node_updates();\n }, 1000);\n this.is_open = true;\n if (data.zustand)\n this.set_zustand(data.zustand);\n }\n FuncNodesWorker.prototype.set_zustand = function (zustand) {\n this._zustand = zustand;\n this._zustand.auto_progress();\n this.stepwise_fullsync();\n };\n FuncNodesWorker.prototype.stepwise_fullsync = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this.sync_lib()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.sync_external_worker()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.sync_funcnodes_plugins()];\n case 3:\n _a.sent();\n return [4 /*yield*/, this.sync_nodespace()];\n case 4:\n _a.sent();\n return [4 /*yield*/, this.sync_view_state()];\n case 5:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_lib = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_library\",\n wait_for_response: true,\n retries: 2,\n })];\n case 1:\n resp = _a.sent();\n this._zustand.lib.libstate.getState().set({\n lib: resp,\n });\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_external_worker = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_worker_dependencies\",\n wait_for_response: true,\n })];\n case 1:\n resp = _a.sent();\n this._zustand.lib.libstate.getState().set({\n external_worker: resp,\n });\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_funcnodes_plugins = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp, _i, resp_1, key, plugin, _a, _b, js, scripttag, _c, _d, css, styletag, binaryString, binaryLen, bytes, i, blob, blobUrl, module;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_plugin_keys\",\n wait_for_response: true,\n kwargs: { type: \"react\" },\n })];\n case 1:\n resp = (_e.sent());\n _i = 0, resp_1 = resp;\n _e.label = 2;\n case 2:\n if (!(_i < resp_1.length)) return [3 /*break*/, 6];\n key = resp_1[_i];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_plugin\",\n wait_for_response: true,\n kwargs: { key: key, type: \"react\" },\n })];\n case 3:\n plugin = _e.sent();\n if (plugin.js) {\n for (_a = 0, _b = plugin.js; _a < _b.length; _a++) {\n js = _b[_a];\n scripttag = document.createElement(\"script\");\n scripttag.text = atob(js);\n document.body.appendChild(scripttag);\n }\n }\n if (plugin.css) {\n for (_c = 0, _d = plugin.css; _c < _d.length; _c++) {\n css = _d[_c];\n styletag = document.createElement(\"style\");\n styletag.innerHTML = atob(css);\n document.head.appendChild(styletag);\n }\n }\n if (!(plugin.module !== undefined)) return [3 /*break*/, 5];\n binaryString = atob(plugin.module);\n binaryLen = binaryString.length;\n bytes = new Uint8Array(binaryLen);\n for (i = 0; i < binaryLen; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n blob = new Blob([bytes], { type: \"application/javascript\" });\n blobUrl = URL.createObjectURL(blob);\n return [4 /*yield*/, import(/* webpackIgnore: true */ blobUrl)];\n case 4:\n module = _e.sent();\n // gc the blob\n URL.revokeObjectURL(blobUrl);\n this._zustand.add_plugin(key, module.default);\n _e.label = 5;\n case 5:\n _i++;\n return [3 /*break*/, 2];\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_view_state = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp, nodeview, nodeid, nodev;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"view_state\",\n wait_for_response: true,\n })];\n case 1:\n resp = (_a.sent());\n if (resp.renderoptions)\n this._zustand.update_render_options(resp.renderoptions);\n nodeview = resp.nodes;\n if (nodeview) {\n for (nodeid in nodeview) {\n nodev = nodeview[nodeid];\n this._zustand.on_node_action({\n type: \"update\",\n node: {\n frontend: nodev,\n },\n id: nodeid,\n from_remote: true,\n });\n }\n }\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_nodespace = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp, _i, resp_2, node, edges, _a, edges_1, edge;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_nodes\",\n kwargs: { with_frontend: true },\n wait_for_response: true,\n })];\n case 1:\n resp = (_b.sent());\n for (_i = 0, resp_2 = resp; _i < resp_2.length; _i++) {\n node = resp_2[_i];\n this._recieve_node_added(node);\n }\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_edges\",\n wait_for_response: true,\n })];\n case 2:\n edges = (_b.sent());\n for (_a = 0, edges_1 = edges; _a < edges_1.length; _a++) {\n edge = edges_1[_a];\n this._recieve_edge_added.apply(this, edge);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.fullsync = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp, e_1, nodeview, _i, _a, node, _b, _c, edge;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n _d.label = 1;\n case 1:\n if (false) {}\n _d.label = 2;\n case 2:\n _d.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this._send_cmd({ cmd: \"full_state\" })];\n case 3:\n resp = (_d.sent());\n return [3 /*break*/, 6];\n case 4:\n e_1 = _d.sent();\n console.error(\"Error in fullsync\", e_1);\n return [3 /*break*/, 5];\n case 5: return [3 /*break*/, 1];\n case 6:\n console.log(\"Full state\", resp);\n this._zustand.lib.libstate.getState().set({\n lib: resp.backend.lib,\n external_worker: resp.worker_dependencies,\n });\n if (resp.view.renderoptions)\n this._zustand.update_render_options(resp.view.renderoptions);\n nodeview = resp.view.nodes;\n for (_i = 0, _a = resp.backend.nodes; _i < _a.length; _i++) {\n node = _a[_i];\n if (nodeview[node.id] !== undefined) {\n node.frontend = nodeview[node.id];\n }\n this._recieve_node_added(node);\n }\n for (_b = 0, _c = resp.backend.edges; _b < _c.length; _b++) {\n edge = _c[_b];\n this._recieve_edge_added.apply(this, edge);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype._recieve_edge_added = function (src_nid, src_ioid, trg_nid, trg_ioid) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.on_edge_action(__assign({ type: \"add\", from_remote: true }, { src_nid: src_nid, src_ioid: src_ioid, trg_nid: trg_nid, trg_ioid: trg_ioid }));\n return [2 /*return*/];\n });\n });\n };\n FuncNodesWorker.prototype.trigger_node = function (node_id) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"trigger_node\",\n kwargs: { nid: node_id },\n wait_for_response: false,\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.add_node = function (node_id) {\n return __awaiter(this, void 0, void 0, function () {\n var resp;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"add_node\",\n kwargs: { id: node_id },\n })];\n case 1:\n resp = _a.sent();\n this._recieve_node_added(resp);\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.remove_node = function (node_id) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"remove_node\",\n kwargs: { id: node_id },\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype._recieve_node_added = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.on_node_action({\n type: \"add\",\n node: data,\n id: data.id,\n from_remote: true,\n });\n return [2 /*return*/];\n });\n });\n };\n FuncNodesWorker.prototype.add_edge = function (_a) {\n var src_nid = _a.src_nid, src_ioid = _a.src_ioid, trg_nid = _a.trg_nid, trg_ioid = _a.trg_ioid, _b = _a.replace, replace = _b === void 0 ? false : _b;\n return this._send_cmd({\n cmd: \"add_edge\",\n kwargs: { src_nid: src_nid, src_ioid: src_ioid, trg_nid: trg_nid, trg_ioid: trg_ioid, replace: replace },\n });\n };\n FuncNodesWorker.prototype.remove_edge = function (_a) {\n var src_nid = _a.src_nid, src_ioid = _a.src_ioid, trg_nid = _a.trg_nid, trg_ioid = _a.trg_ioid;\n return this._send_cmd({\n cmd: \"remove_edge\",\n kwargs: { src_nid: src_nid, src_ioid: src_ioid, trg_nid: trg_nid, trg_ioid: trg_ioid },\n });\n };\n FuncNodesWorker.prototype.add_external_worker = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var module = _b.module, cls_module = _b.cls_module, cls_name = _b.cls_name;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"add_external_worker\",\n kwargs: { module: module, cls_module: cls_module, cls_name: cls_name },\n })];\n case 1: return [2 /*return*/, _c.sent()];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_local_node_updates = function () {\n var _this = this;\n clearTimeout(this._nodeupdatetimer);\n this._local_nodeupdates.forEach(function (node, id) { return __awaiter(_this, void 0, void 0, function () {\n var ans;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"update_node\",\n kwargs: { nid: id, data: node },\n wait_for_response: true,\n })];\n case 1:\n ans = _a.sent();\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.on_node_action({\n type: \"update\",\n node: ans,\n id: id,\n from_remote: true,\n });\n return [2 /*return*/];\n }\n });\n }); });\n this._local_nodeupdates.clear();\n this._nodeupdatetimer = setTimeout(function () {\n _this.sync_local_node_updates();\n }, 200);\n };\n FuncNodesWorker.prototype.locally_update_node = function (action) {\n // Add the type to the parameter\n var currentstate = this._local_nodeupdates.get(action.id);\n if (currentstate) {\n var _a = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.deep_merge)(currentstate, action.node), new_obj = _a.new_obj, change = _a.change;\n if (change) {\n this._local_nodeupdates.set(action.id, new_obj);\n }\n }\n else {\n this._local_nodeupdates.set(action.id, action.node);\n }\n if (action.immediate) {\n this.sync_local_node_updates();\n }\n };\n FuncNodesWorker.prototype.get_remote_node_state = function (nid) {\n return __awaiter(this, void 0, void 0, function () {\n var ans;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"get_node_state\",\n kwargs: { nid: nid },\n wait_for_response: true,\n })];\n case 1:\n ans = _a.sent();\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.on_node_action({\n type: \"update\",\n node: ans,\n id: ans.id,\n from_remote: true,\n });\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.set_io_value = function (_a) {\n var nid = _a.nid, ioid = _a.ioid, value = _a.value, _b = _a.set_default, set_default = _b === void 0 ? false : _b;\n if (set_default && value == \"<NoValue>\")\n set_default = false;\n return this._send_cmd({\n cmd: \"set_io_value\",\n kwargs: { nid: nid, ioid: ioid, value: value, set_default: set_default },\n wait_for_response: true,\n });\n };\n FuncNodesWorker.prototype.clear = function () {\n return this._send_cmd({ cmd: \"clear\" });\n };\n FuncNodesWorker.prototype.save = function () {\n return this._send_cmd({ cmd: \"save\", wait_for_response: true });\n };\n FuncNodesWorker.prototype.load = function (data) {\n var _this = this;\n return this._send_cmd({\n cmd: \"load_data\",\n kwargs: { data: data },\n wait_for_response: true,\n }).then(function () {\n _this.stepwise_fullsync();\n });\n };\n FuncNodesWorker.prototype.get_io_value = function (_a) {\n var nid = _a.nid, ioid = _a.ioid;\n return this._send_cmd({\n cmd: \"get_io_value\",\n kwargs: { nid: nid, ioid: ioid },\n wait_for_response: true,\n });\n };\n FuncNodesWorker.prototype._send_cmd = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var msg, wait_for_response_callback;\n var _this = this;\n var cmd = _b.cmd, kwargs = _b.kwargs, _c = _b.wait_for_response, wait_for_response = _c === void 0 ? true : _c, _d = _b.response_timeout, response_timeout = _d === void 0 ? 5000 : _d, _e = _b.retries, retries = _e === void 0 ? 2 : _e;\n return __generator(this, function (_f) {\n msg = {\n type: \"cmd\",\n cmd: cmd,\n kwargs: kwargs || {},\n };\n if (wait_for_response) {\n if (retries < 0)\n retries = 0;\n wait_for_response_callback = function () { return __awaiter(_this, void 0, void 0, function () {\n var response, _loop_1, this_1, state_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _loop_1 = function () {\n var msid, promise, e_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n msid = msg.id || (0,uuid__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n msg.id = msid;\n promise = new Promise(function (resolve, reject) {\n var timeout = setTimeout(function () {\n reject(\"Timeout@wait_for_response for \" + cmd);\n }, response_timeout);\n _this.messagePromises.set(msid, {\n resolve: function (data) {\n clearTimeout(timeout);\n resolve(data);\n _this.messagePromises.delete(msid);\n },\n reject: function (err) {\n clearTimeout(timeout);\n reject(err);\n _this.messagePromises.delete(msid);\n },\n });\n });\n return [4 /*yield*/, this_1.send(msg)];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, promise];\n case 3:\n response = _b.sent();\n return [2 /*return*/, \"break\"];\n case 4:\n e_2 = _b.sent();\n if (retries === 0)\n throw e_2;\n retries -= 1;\n return [2 /*return*/, \"continue\"];\n case 5: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _a.label = 1;\n case 1:\n if (!(retries >= 0)) return [3 /*break*/, 3];\n return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _a.sent();\n if (state_1 === \"break\")\n return [3 /*break*/, 3];\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/, response];\n }\n });\n }); };\n return [2 /*return*/, wait_for_response_callback()];\n }\n return [2 /*return*/, this.send(msg)];\n });\n });\n };\n FuncNodesWorker.prototype.send = function (_data) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // this is the abstract method that should be implemented by subclasses\n throw new Error(\"Not implemented\");\n });\n });\n };\n FuncNodesWorker.prototype.recieve_nodespace_event = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var _c, _d;\n var event = _b.event, data = _b.data;\n return __generator(this, function (_e) {\n switch (event) {\n case \"after_set_value\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"update\",\n node: {\n id: data.node,\n io: (_c = {},\n _c[data.io] = {\n value: data.result,\n },\n _c),\n },\n id: data.node,\n from_remote: true,\n })];\n case \"after_update_value_options\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"update\",\n node: {\n id: data.node,\n io: (_d = {},\n _d[data.io] = {\n value_options: data.result,\n },\n _d),\n },\n id: data.node,\n from_remote: true,\n })];\n case \"triggerstart\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"update\",\n node: {\n id: data.node,\n in_trigger: true,\n },\n id: data.node,\n from_remote: true,\n })];\n case \"triggerdone\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"update\",\n node: {\n id: data.node,\n in_trigger: false,\n },\n id: data.node,\n from_remote: true,\n })];\n case \"node_trigger_error\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"error\",\n errortype: \"trigger\",\n error: data.error,\n id: data.node,\n from_remote: true,\n })];\n case \"node_removed\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"delete\",\n id: data.node,\n from_remote: true,\n })];\n case \"node_added\":\n return [2 /*return*/, this._recieve_node_added(data.node)];\n case \"after_disconnect\":\n if (!data.result)\n return [2 /*return*/];\n if (!Array.isArray(data.result))\n return [2 /*return*/];\n if (data.result.length !== 4)\n return [2 /*return*/];\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_edge_action({\n type: \"delete\",\n from_remote: true,\n src_nid: data.result[0],\n src_ioid: data.result[1],\n trg_nid: data.result[2],\n trg_ioid: data.result[3],\n })];\n case \"after_connect\":\n if (!data.result)\n return [2 /*return*/];\n if (!Array.isArray(data.result))\n return [2 /*return*/];\n if (data.result.length !== 4)\n return [2 /*return*/];\n return [2 /*return*/, this._recieve_edge_added.apply(this, data.result)];\n case \"after_add_shelf\":\n if (!data.result)\n return [2 /*return*/];\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.lib.libstate.getState().set({\n lib: data.result,\n })];\n default:\n console.warn(\"Unhandled nodepsace event\", event, data);\n break;\n }\n return [2 /*return*/];\n });\n });\n };\n FuncNodesWorker.prototype.add_lib = function (lib) {\n return __awaiter(this, void 0, void 0, function () {\n var ans;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"add_shelf\",\n kwargs: { src: lib },\n wait_for_response: false,\n })];\n case 1:\n ans = _a.sent();\n return [2 /*return*/, ans];\n }\n });\n });\n };\n FuncNodesWorker.prototype.add_worker_package = function (pkg) {\n return __awaiter(this, void 0, void 0, function () {\n var ans;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"add_worker_package\",\n kwargs: { src: pkg },\n wait_for_response: false,\n })];\n case 1:\n ans = _a.sent();\n return [2 /*return*/, ans];\n }\n });\n });\n };\n FuncNodesWorker.prototype.recieve = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var promise, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = data.type;\n switch (_a) {\n case \"nsevent\": return [3 /*break*/, 1];\n case \"result\": return [3 /*break*/, 3];\n case \"error\": return [3 /*break*/, 4];\n case \"progress\": return [3 /*break*/, 5];\n }\n return [3 /*break*/, 6];\n case 1: return [4 /*yield*/, this.recieve_nodespace_event(data)];\n case 2: return [2 /*return*/, _b.sent()];\n case 3:\n promise = data.id && this.messagePromises.get(data.id);\n if (promise) {\n return [2 /*return*/, promise.resolve(data.result)];\n }\n return [3 /*break*/, 7];\n case 4:\n this.on_error(data.tb + \"\\n\" + data.error);\n promise = data.id && this.messagePromises.get(data.id);\n if (promise) {\n return [2 /*return*/, promise.reject(data.error)];\n }\n return [3 /*break*/, 7];\n case 5:\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.set_progress(data);\n return [3 /*break*/, 7];\n case 6:\n console.warn(\"Unhandled message\", data);\n return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.disconnect = function () { };\n FuncNodesWorker.prototype.onclose = function () {\n this.is_open = false;\n if (!this._zustand)\n return;\n this._zustand.auto_progress();\n };\n FuncNodesWorker.prototype.reconnect = function () {\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2 /*return*/];\n }); });\n };\n FuncNodesWorker.prototype.stop = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oldonclose;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({ cmd: \"stop_worker\", wait_for_response: false })];\n case 1:\n _a.sent();\n oldonclose = this.onclose.bind(this);\n this.onclose = function () {\n oldonclose();\n if (!_this._zustand)\n return;\n if (_this._zustand.worker === _this) {\n _this._zustand.clear_all();\n }\n _this.onclose = oldonclose;\n };\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.get_io_full_value = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var res;\n var _c;\n var nid = _b.nid, ioid = _b.ioid;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"get_io_full_value\",\n kwargs: { nid: nid, ioid: ioid },\n wait_for_response: true,\n })];\n case 1:\n res = _d.sent();\n //console.log(\"Full value\", res);\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.on_node_action({\n type: \"update\",\n node: {\n io: (_c = {},\n _c[ioid] = {\n fullvalue: res,\n },\n _c),\n },\n id: nid,\n from_remote: true,\n });\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.get_node_status = function (nid) {\n return __awaiter(this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"get_node_state\",\n kwargs: { nid: nid },\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n return [2 /*return*/, res];\n }\n });\n });\n };\n return FuncNodesWorker;\n}());\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FuncNodesWorker);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/funcnodes/funcnodesworker.ts?");
|
|
2884
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n/* harmony import */ var _utils_debugger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/debugger */ \"./src/utils/debugger.ts\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\nvar FuncNodesWorker = /** @class */ (function () {\n function FuncNodesWorker(data) {\n var _this = this;\n this.uuid = data.uuid;\n this.on_error =\n data.on_error ||\n (function (err) {\n var _a;\n (_a = _this._zustand) === null || _a === void 0 ? void 0 : _a.logger.error(err);\n });\n this.messagePromises = new Map();\n this._local_nodeupdates = new Map();\n this._nodeupdatetimer = setTimeout(function () {\n _this.sync_local_node_updates();\n }, 1000);\n this.is_open = true;\n if (data.zustand)\n this.set_zustand(data.zustand);\n }\n FuncNodesWorker.prototype.set_zustand = function (zustand) {\n this._zustand = zustand;\n this._zustand.auto_progress();\n this.stepwise_fullsync();\n };\n FuncNodesWorker.prototype.stepwise_fullsync = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this.sync_lib()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.sync_external_worker()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.sync_funcnodes_plugins()];\n case 3:\n _a.sent();\n return [4 /*yield*/, this.sync_nodespace()];\n case 4:\n _a.sent();\n return [4 /*yield*/, this.sync_view_state()];\n case 5:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_lib = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_library\",\n wait_for_response: true,\n retries: 2,\n })];\n case 1:\n resp = _a.sent();\n this._zustand.lib.libstate.getState().set({\n lib: resp,\n });\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_external_worker = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_worker_dependencies\",\n wait_for_response: true,\n })];\n case 1:\n resp = _a.sent();\n this._zustand.lib.libstate.getState().set({\n external_worker: resp,\n });\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_funcnodes_plugins = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp, _i, resp_1, key, plugin, _a, _b, js, scripttag, _c, _d, css, styletag, binaryString, binaryLen, bytes, i, blob, blobUrl, module;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_plugin_keys\",\n wait_for_response: true,\n kwargs: { type: \"react\" },\n })];\n case 1:\n resp = (_e.sent());\n _i = 0, resp_1 = resp;\n _e.label = 2;\n case 2:\n if (!(_i < resp_1.length)) return [3 /*break*/, 6];\n key = resp_1[_i];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_plugin\",\n wait_for_response: true,\n kwargs: { key: key, type: \"react\" },\n })];\n case 3:\n plugin = _e.sent();\n if (plugin.js) {\n for (_a = 0, _b = plugin.js; _a < _b.length; _a++) {\n js = _b[_a];\n scripttag = document.createElement(\"script\");\n scripttag.text = atob(js);\n document.body.appendChild(scripttag);\n }\n }\n if (plugin.css) {\n for (_c = 0, _d = plugin.css; _c < _d.length; _c++) {\n css = _d[_c];\n styletag = document.createElement(\"style\");\n styletag.innerHTML = atob(css);\n document.head.appendChild(styletag);\n }\n }\n if (!(plugin.module !== undefined)) return [3 /*break*/, 5];\n binaryString = atob(plugin.module);\n binaryLen = binaryString.length;\n bytes = new Uint8Array(binaryLen);\n for (i = 0; i < binaryLen; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n blob = new Blob([bytes], { type: \"application/javascript\" });\n blobUrl = URL.createObjectURL(blob);\n return [4 /*yield*/, import(/* webpackIgnore: true */ blobUrl)];\n case 4:\n module = _e.sent();\n // gc the blob\n URL.revokeObjectURL(blobUrl);\n this._zustand.add_plugin(key, module.default);\n _e.label = 5;\n case 5:\n _i++;\n return [3 /*break*/, 2];\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_view_state = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp, nodeview, nodeid, nodev;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"view_state\",\n wait_for_response: true,\n })];\n case 1:\n resp = (_a.sent());\n if (resp.renderoptions)\n this._zustand.update_render_options(resp.renderoptions);\n nodeview = resp.nodes;\n if (nodeview) {\n for (nodeid in nodeview) {\n nodev = nodeview[nodeid];\n this._zustand.on_node_action({\n type: \"update\",\n node: {\n frontend: nodev,\n },\n id: nodeid,\n from_remote: true,\n });\n }\n }\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_nodespace = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp, _i, resp_2, node, edges, _a, edges_1, edge;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_nodes\",\n kwargs: { with_frontend: true },\n wait_for_response: true,\n })];\n case 1:\n resp = (_b.sent());\n for (_i = 0, resp_2 = resp; _i < resp_2.length; _i++) {\n node = resp_2[_i];\n this._recieve_node_added(node);\n }\n return [4 /*yield*/, this._send_cmd({\n cmd: \"get_edges\",\n wait_for_response: true,\n })];\n case 2:\n edges = (_b.sent());\n for (_a = 0, edges_1 = edges; _a < edges_1.length; _a++) {\n edge = edges_1[_a];\n this._recieve_edge_added.apply(this, edge);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.fullsync = function () {\n return __awaiter(this, void 0, void 0, function () {\n var resp, e_1, nodeview, _i, _a, node, _b, _c, edge;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!this._zustand)\n return [2 /*return*/];\n if (!this.is_open)\n return [2 /*return*/];\n _d.label = 1;\n case 1:\n if (false) {}\n _d.label = 2;\n case 2:\n _d.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this._send_cmd({ cmd: \"full_state\" })];\n case 3:\n resp = (_d.sent());\n return [3 /*break*/, 6];\n case 4:\n e_1 = _d.sent();\n this._zustand.logger.error(\"Error in fullsync\", e_1);\n return [3 /*break*/, 5];\n case 5: return [3 /*break*/, 1];\n case 6:\n this._zustand.logger.debug(\"Full state\", resp);\n this._zustand.lib.libstate.getState().set({\n lib: resp.backend.lib,\n external_worker: resp.worker_dependencies,\n });\n if (resp.view.renderoptions)\n this._zustand.update_render_options(resp.view.renderoptions);\n nodeview = resp.view.nodes;\n for (_i = 0, _a = resp.backend.nodes; _i < _a.length; _i++) {\n node = _a[_i];\n if (nodeview[node.id] !== undefined) {\n node.frontend = nodeview[node.id];\n }\n this._recieve_node_added(node);\n }\n for (_b = 0, _c = resp.backend.edges; _b < _c.length; _b++) {\n edge = _c[_b];\n this._recieve_edge_added.apply(this, edge);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype._recieve_edge_added = function (src_nid, src_ioid, trg_nid, trg_ioid) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.on_edge_action(__assign({ type: \"add\", from_remote: true }, { src_nid: src_nid, src_ioid: src_ioid, trg_nid: trg_nid, trg_ioid: trg_ioid }));\n return [2 /*return*/];\n });\n });\n };\n FuncNodesWorker.prototype.trigger_node = function (node_id) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"trigger_node\",\n kwargs: { nid: node_id },\n wait_for_response: false,\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.add_node = function (node_id) {\n return __awaiter(this, void 0, void 0, function () {\n var resp;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"add_node\",\n kwargs: { id: node_id },\n })];\n case 1:\n resp = _a.sent();\n this._recieve_node_added(resp);\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.remove_node = function (node_id) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"remove_node\",\n kwargs: { id: node_id },\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype._recieve_node_added = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.on_node_action({\n type: \"add\",\n node: data,\n id: data.id,\n from_remote: true,\n });\n return [2 /*return*/];\n });\n });\n };\n FuncNodesWorker.prototype.add_edge = function (_a) {\n var src_nid = _a.src_nid, src_ioid = _a.src_ioid, trg_nid = _a.trg_nid, trg_ioid = _a.trg_ioid, _b = _a.replace, replace = _b === void 0 ? false : _b;\n return this._send_cmd({\n cmd: \"add_edge\",\n kwargs: { src_nid: src_nid, src_ioid: src_ioid, trg_nid: trg_nid, trg_ioid: trg_ioid, replace: replace },\n });\n };\n FuncNodesWorker.prototype.remove_edge = function (_a) {\n var src_nid = _a.src_nid, src_ioid = _a.src_ioid, trg_nid = _a.trg_nid, trg_ioid = _a.trg_ioid;\n return this._send_cmd({\n cmd: \"remove_edge\",\n kwargs: { src_nid: src_nid, src_ioid: src_ioid, trg_nid: trg_nid, trg_ioid: trg_ioid },\n });\n };\n FuncNodesWorker.prototype.add_external_worker = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var module = _b.module, cls_module = _b.cls_module, cls_name = _b.cls_name;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"add_external_worker\",\n kwargs: { module: module, cls_module: cls_module, cls_name: cls_name },\n })];\n case 1: return [2 /*return*/, _c.sent()];\n }\n });\n });\n };\n FuncNodesWorker.prototype.sync_local_node_updates = function () {\n var _this = this;\n clearTimeout(this._nodeupdatetimer);\n this._local_nodeupdates.forEach(function (node, id) { return __awaiter(_this, void 0, void 0, function () {\n var ans;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"update_node\",\n kwargs: { nid: id, data: node },\n wait_for_response: true,\n })];\n case 1:\n ans = _a.sent();\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.on_node_action({\n type: \"update\",\n node: ans,\n id: id,\n from_remote: true,\n });\n return [2 /*return*/];\n }\n });\n }); });\n this._local_nodeupdates.clear();\n this._nodeupdatetimer = setTimeout(function () {\n _this.sync_local_node_updates();\n }, 200);\n };\n FuncNodesWorker.prototype.locally_update_node = function (action) {\n // Add the type to the parameter\n var currentstate = this._local_nodeupdates.get(action.id);\n if (currentstate) {\n var _a = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.deep_merge)(currentstate, action.node), new_obj = _a.new_obj, change = _a.change;\n if (change) {\n this._local_nodeupdates.set(action.id, new_obj);\n }\n }\n else {\n this._local_nodeupdates.set(action.id, action.node);\n }\n if (action.immediate) {\n this.sync_local_node_updates();\n }\n };\n FuncNodesWorker.prototype.get_remote_node_state = function (nid) {\n return __awaiter(this, void 0, void 0, function () {\n var ans;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"get_node_state\",\n kwargs: { nid: nid },\n wait_for_response: true,\n })];\n case 1:\n ans = _a.sent();\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.on_node_action({\n type: \"update\",\n node: ans,\n id: ans.id,\n from_remote: true,\n });\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.set_io_value = function (_a) {\n var nid = _a.nid, ioid = _a.ioid, value = _a.value, _b = _a.set_default, set_default = _b === void 0 ? false : _b;\n if (set_default && value == \"<NoValue>\")\n set_default = false;\n return this._send_cmd({\n cmd: \"set_io_value\",\n kwargs: { nid: nid, ioid: ioid, value: value, set_default: set_default },\n wait_for_response: true,\n });\n };\n FuncNodesWorker.prototype.clear = function () {\n return this._send_cmd({ cmd: \"clear\" });\n };\n FuncNodesWorker.prototype.save = function () {\n return this._send_cmd({ cmd: \"save\", wait_for_response: true });\n };\n FuncNodesWorker.prototype.load = function (data) {\n var _this = this;\n return this._send_cmd({\n cmd: \"load_data\",\n kwargs: { data: data },\n wait_for_response: true,\n }).then(function () {\n _this.stepwise_fullsync();\n });\n };\n FuncNodesWorker.prototype.get_io_value = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var res;\n var _c;\n var nid = _b.nid, ioid = _b.ioid;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"get_io_value\",\n kwargs: { nid: nid, ioid: ioid },\n wait_for_response: true,\n })];\n case 1:\n res = _d.sent();\n if (!this._zustand)\n return [2 /*return*/, res];\n this._zustand.on_node_action({\n type: \"update\",\n node: {\n io: (_c = {},\n _c[ioid] = {\n value: res,\n },\n _c),\n },\n id: nid,\n from_remote: true,\n });\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.get_ios_values = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var res, mappedres, ioid;\n var nid = _b.nid;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"get_ios_values\",\n kwargs: { nid: nid },\n wait_for_response: true,\n })];\n case 1:\n res = _c.sent();\n if (!this._zustand)\n return [2 /*return*/, res];\n mappedres = {};\n for (ioid in res) {\n mappedres[ioid] = { value: res[ioid] };\n }\n this._zustand.on_node_action({\n type: \"update\",\n node: {\n io: mappedres,\n },\n id: nid,\n from_remote: true,\n });\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype._send_cmd = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var msg, wait_for_response_callback;\n var _this = this;\n var cmd = _b.cmd, kwargs = _b.kwargs, _c = _b.wait_for_response, wait_for_response = _c === void 0 ? true : _c, _d = _b.response_timeout, response_timeout = _d === void 0 ? 5000 : _d, _e = _b.retries, retries = _e === void 0 ? 2 : _e;\n return __generator(this, function (_f) {\n msg = {\n type: \"cmd\",\n cmd: cmd,\n kwargs: kwargs || {},\n };\n if (wait_for_response) {\n if (retries < 0)\n retries = 0;\n wait_for_response_callback = function () { return __awaiter(_this, void 0, void 0, function () {\n var response, _loop_1, this_1, state_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _loop_1 = function () {\n var msid, promise, e_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n msid = msg.id || (0,uuid__WEBPACK_IMPORTED_MODULE_2__[\"default\"])();\n msg.id = msid;\n promise = new Promise(function (resolve, reject) {\n var timeout = setTimeout(function () {\n reject(\"Timeout@wait_for_response for \" + cmd);\n }, response_timeout);\n _this.messagePromises.set(msid, {\n resolve: function (data) {\n clearTimeout(timeout);\n resolve(data);\n _this.messagePromises.delete(msid);\n },\n reject: function (err) {\n clearTimeout(timeout);\n reject(err);\n _this.messagePromises.delete(msid);\n },\n });\n });\n return [4 /*yield*/, this_1.send(msg)];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, promise];\n case 3:\n response = _b.sent();\n return [2 /*return*/, \"break\"];\n case 4:\n e_2 = _b.sent();\n if (retries === 0)\n throw e_2;\n retries -= 1;\n return [2 /*return*/, \"continue\"];\n case 5: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _a.label = 1;\n case 1:\n if (!(retries >= 0)) return [3 /*break*/, 3];\n return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _a.sent();\n if (state_1 === \"break\")\n return [3 /*break*/, 3];\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/, response];\n }\n });\n }); };\n return [2 /*return*/, wait_for_response_callback()];\n }\n return [2 /*return*/, this.send(msg)];\n });\n });\n };\n FuncNodesWorker.prototype.send = function (_data) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n // this is the abstract method that should be implemented by subclasses\n throw new Error(\"Not implemented\");\n });\n });\n };\n FuncNodesWorker.prototype.recieve_nodespace_event = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var _c, _d;\n var event = _b.event, data = _b.data;\n return __generator(this, function (_e) {\n (0,_utils_debugger__WEBPACK_IMPORTED_MODULE_1__.print_object_size)(data, \"Data size for event \" + event, this._zustand);\n (0,_utils_debugger__WEBPACK_IMPORTED_MODULE_1__.print_object)(data, this._zustand);\n switch (event) {\n case \"after_set_value\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"update\",\n node: {\n id: data.node,\n io: (_c = {},\n _c[data.io] = {\n value: data.result,\n },\n _c),\n },\n id: data.node,\n from_remote: true,\n })];\n case \"after_update_value_options\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"update\",\n node: {\n id: data.node,\n io: (_d = {},\n _d[data.io] = {\n value_options: data.result,\n },\n _d),\n },\n id: data.node,\n from_remote: true,\n })];\n case \"triggerstart\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"update\",\n node: {\n id: data.node,\n in_trigger: true,\n },\n id: data.node,\n from_remote: true,\n })];\n case \"triggerdone\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"update\",\n node: {\n id: data.node,\n in_trigger: false,\n },\n id: data.node,\n from_remote: true,\n })];\n case \"node_trigger_error\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"error\",\n errortype: \"trigger\",\n error: data.error,\n id: data.node,\n from_remote: true,\n })];\n case \"node_removed\":\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"delete\",\n id: data.node,\n from_remote: true,\n })];\n case \"node_added\":\n return [2 /*return*/, this._recieve_node_added(data.node)];\n case \"after_disconnect\":\n if (!data.result)\n return [2 /*return*/];\n if (!Array.isArray(data.result))\n return [2 /*return*/];\n if (data.result.length !== 4)\n return [2 /*return*/];\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.on_edge_action({\n type: \"delete\",\n from_remote: true,\n src_nid: data.result[0],\n src_ioid: data.result[1],\n trg_nid: data.result[2],\n trg_ioid: data.result[3],\n })];\n case \"after_connect\":\n if (!data.result)\n return [2 /*return*/];\n if (!Array.isArray(data.result))\n return [2 /*return*/];\n if (data.result.length !== 4)\n return [2 /*return*/];\n return [2 /*return*/, this._recieve_edge_added.apply(this, data.result)];\n case \"after_add_shelf\":\n if (!data.result)\n return [2 /*return*/];\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.lib.libstate.getState().set({\n lib: data.result,\n })];\n default:\n console.warn(\"Unhandled nodepsace event\", event, data);\n break;\n }\n return [2 /*return*/];\n });\n });\n };\n FuncNodesWorker.prototype.add_lib = function (lib) {\n return __awaiter(this, void 0, void 0, function () {\n var ans;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"add_shelf\",\n kwargs: { src: lib },\n wait_for_response: false,\n })];\n case 1:\n ans = _a.sent();\n return [2 /*return*/, ans];\n }\n });\n });\n };\n FuncNodesWorker.prototype.add_worker_package = function (pkg) {\n return __awaiter(this, void 0, void 0, function () {\n var ans;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"add_worker_package\",\n kwargs: { src: pkg },\n wait_for_response: false,\n })];\n case 1:\n ans = _a.sent();\n return [2 /*return*/, ans];\n }\n });\n });\n };\n FuncNodesWorker.prototype.recieve = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var promise, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = data.type;\n switch (_a) {\n case \"nsevent\": return [3 /*break*/, 1];\n case \"result\": return [3 /*break*/, 3];\n case \"error\": return [3 /*break*/, 4];\n case \"progress\": return [3 /*break*/, 5];\n }\n return [3 /*break*/, 6];\n case 1: return [4 /*yield*/, this.recieve_nodespace_event(data)];\n case 2: return [2 /*return*/, _b.sent()];\n case 3:\n promise = data.id && this.messagePromises.get(data.id);\n if (promise) {\n return [2 /*return*/, promise.resolve(data.result)];\n }\n return [3 /*break*/, 7];\n case 4:\n this.on_error(data.tb + \"\\n\" + data.error);\n promise = data.id && this.messagePromises.get(data.id);\n if (promise) {\n return [2 /*return*/, promise.reject(data.error)];\n }\n return [3 /*break*/, 7];\n case 5:\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.set_progress(data);\n return [3 /*break*/, 7];\n case 6:\n console.warn(\"Unhandled message\", data);\n return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.disconnect = function () { };\n FuncNodesWorker.prototype.onclose = function () {\n this.is_open = false;\n if (!this._zustand)\n return;\n this._zustand.auto_progress();\n };\n FuncNodesWorker.prototype.reconnect = function () {\n return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2 /*return*/];\n }); });\n };\n FuncNodesWorker.prototype.stop = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oldonclose;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({ cmd: \"stop_worker\", wait_for_response: false })];\n case 1:\n _a.sent();\n oldonclose = this.onclose.bind(this);\n this.onclose = function () {\n oldonclose();\n if (!_this._zustand)\n return;\n if (_this._zustand.worker === _this) {\n _this._zustand.clear_all();\n }\n _this.onclose = oldonclose;\n };\n return [2 /*return*/];\n }\n });\n });\n };\n FuncNodesWorker.prototype.get_io_full_value = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var res;\n var _c;\n var nid = _b.nid, ioid = _b.ioid;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"get_io_full_value\",\n kwargs: { nid: nid, ioid: ioid },\n wait_for_response: true,\n })];\n case 1:\n res = _d.sent();\n if (!this._zustand)\n return [2 /*return*/, res];\n this._zustand.on_node_action({\n type: \"update\",\n node: {\n io: (_c = {},\n _c[ioid] = {\n fullvalue: res,\n },\n _c),\n },\n id: nid,\n from_remote: true,\n });\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.get_node_status = function (nid) {\n return __awaiter(this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"get_node_state\",\n kwargs: { nid: nid },\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n return [2 /*return*/, res];\n }\n });\n });\n };\n return FuncNodesWorker;\n}());\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FuncNodesWorker);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/funcnodes/funcnodesworker.ts?");
|
|
2885
2885
|
|
|
2886
2886
|
/***/ }),
|
|
2887
2887
|
|
|
@@ -2903,7 +2903,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2903
2903
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2904
2904
|
|
|
2905
2905
|
"use strict";
|
|
2906
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _funcnodesworker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./funcnodesworker */ \"./src/funcnodes/funcnodesworker.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\nvar WebSocketWorker = /** @class */ (function (_super) {\n __extends(WebSocketWorker, _super);\n function WebSocketWorker(data) {\n var _this = _super.call(this, data) || this;\n _this._websocket = null;\n _this.reconnectAttempts = 0;\n _this.maxReconnectAttempts = 999;\n _this.initialTimeout = 200; // Initial reconnect delay in ms\n _this.maxTimeout = 5000; // Maximum reconnect delay\n _this._reconnect = true;\n _this._url = data.url;\n _this.connect();\n if (_this._zustand)\n _this._zustand.auto_progress();\n return _this;\n }\n WebSocketWorker.prototype.connect = function () {\n var _this = this;\n console.log(\"Connecting to websocket\");\n this.is_open = false;\n this._websocket = new WebSocket(this._url);\n this._websocket.onopen = function () {\n _this.onopen();\n };\n this._websocket.onclose = function () {\n _this.onclose();\n };\n this._websocket.onerror = function () {\n _this.on_ws_error();\n };\n this._websocket.onmessage = function (event) {\n _this.onmessage(event.data);\n };\n };\n WebSocketWorker.prototype.calculateReconnectTimeout = function () {\n // Increase timeout exponentially, capped at maxTimeout\n var timeout = Math.min(this.initialTimeout * Math.pow(2, this.reconnectAttempts), this.maxTimeout);\n return timeout;\n };\n WebSocketWorker.prototype.auto_reconnect = function () {\n var _this = this;\n if (this.reconnectAttempts < this.maxReconnectAttempts) {\n var timeout = this.calculateReconnectTimeout();\n console.log(\"Attempting to reconnect in \".concat(timeout, \" ms\"));\n setTimeout(function () {\n if (_this._websocket) {\n if (_this._websocket.readyState === WebSocket.OPEN) {\n return;\n }\n }\n _this.reconnectAttempts++;\n _this.connect();\n }, timeout);\n }\n else {\n console.warn(\"Maximum reconnect attempts reached. Giving up.\");\n }\n };\n WebSocketWorker.prototype.onmessage = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.recieve(JSON.parse(data))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n WebSocketWorker.prototype.onopen = function () {\n console.log(\"Websocket opened\");\n this.is_open = true;\n if (this._zustand)\n this._zustand.auto_progress();\n this.reconnectAttempts = 0;\n this.stepwise_fullsync();\n };\n WebSocketWorker.prototype.onclose = function () {\n console.log(\"Websocket closed\", this);\n _super.prototype.onclose.call(this);\n if (this._reconnect) {\n console.log(\"Websocket closed,reconnecting\");\n this.auto_reconnect(); // Attempt to reconnect\n }\n };\n WebSocketWorker.prototype.on_ws_error = function () {\n console.warn(\"Websocket error\");\n if (this._websocket) {\n this._websocket.close(); // Ensure the connection is closed before attempting to reconnect\n }\n else {\n this.auto_reconnect();\n }\n };\n WebSocketWorker.prototype.send = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (!this._websocket || this._websocket.readyState !== WebSocket.OPEN) {\n console.warn(\"Websocket not connected\");\n return [2 /*return*/];\n }\n this._websocket.send(JSON.stringify(data));\n return [2 /*return*/];\n });\n });\n };\n WebSocketWorker.prototype.stop = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, _super.prototype.stop.call(this)];\n case 1:\n _a.sent();\n this._reconnect = false;\n return [2 /*return*/];\n }\n });\n });\n };\n WebSocketWorker.prototype.close = function () {\n if (this._websocket)\n this._websocket.close();\n };\n WebSocketWorker.prototype.disconnect = function () {\n _super.prototype.disconnect.call(this);\n this._reconnect = false;\n this.close();\n };\n WebSocketWorker.prototype.reconnect = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, _super.prototype.reconnect.call(this)];\n case 1:\n _a.sent();\n this._reconnect = true;\n if (!this._websocket) return [3 /*break*/, 4];\n console.log(\"Reconnecting\", this._websocket.readyState);\n if (!(this._websocket.readyState === WebSocket.OPEN ||\n this._websocket.readyState === WebSocket.CONNECTING)) return [3 /*break*/, 4];\n if (!(this._websocket.readyState === WebSocket.CONNECTING)) return [3 /*break*/, 3];\n //await to ensure the websocket is connected, with a timeout of 2 seconds\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n if (_this._websocket === null)\n return;\n var timeout = setTimeout(function () {\n reject(\"Timeout@reconnect\");\n }, 2000);\n _this._websocket.addEventListener(\"open\", function () {\n clearTimeout(timeout);\n resolve(null);\n }, { once: true });\n if (_this._websocket.readyState === WebSocket.OPEN) {\n clearTimeout(timeout);\n resolve(null);\n }\n })];\n case 2:\n //await to ensure the websocket is connected, with a timeout of 2 seconds\n _a.sent();\n _a.label = 3;\n case 3:\n if (this._websocket.readyState === WebSocket.OPEN) {\n this.stepwise_fullsync();\n return [2 /*return*/];\n }\n _a.label = 4;\n case 4:\n this.connect();\n return [2 /*return*/];\n }\n });\n });\n };\n return WebSocketWorker;\n}(_funcnodesworker__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WebSocketWorker);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/funcnodes/websocketworker.ts?");
|
|
2906
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _funcnodesworker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./funcnodesworker */ \"./src/funcnodes/funcnodesworker.ts\");\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\nvar WebSocketWorker = /** @class */ (function (_super) {\n __extends(WebSocketWorker, _super);\n function WebSocketWorker(data) {\n var _this = _super.call(this, data) || this;\n _this._websocket = null;\n _this.reconnectAttempts = 0;\n _this.maxReconnectAttempts = 999;\n _this.initialTimeout = 200; // Initial reconnect delay in ms\n _this.maxTimeout = 5000; // Maximum reconnect delay\n _this._reconnect = true;\n _this._url = data.url;\n _this.connect();\n if (_this._zustand)\n _this._zustand.auto_progress();\n return _this;\n }\n WebSocketWorker.prototype.connect = function () {\n var _this = this;\n var _a;\n (_a = this._zustand) === null || _a === void 0 ? void 0 : _a.logger.info(\"Connecting to websocket\");\n this.is_open = false;\n this._websocket = new WebSocket(this._url);\n this._websocket.onopen = function () {\n _this.onopen();\n };\n this._websocket.onclose = function () {\n _this.onclose();\n };\n this._websocket.onerror = function () {\n _this.on_ws_error();\n };\n this._websocket.onmessage = function (event) {\n _this.onmessage(event.data);\n };\n };\n WebSocketWorker.prototype.calculateReconnectTimeout = function () {\n // Increase timeout exponentially, capped at maxTimeout\n var timeout = Math.min(this.initialTimeout * Math.pow(2, this.reconnectAttempts), this.maxTimeout);\n return timeout;\n };\n WebSocketWorker.prototype.auto_reconnect = function () {\n var _this = this;\n var _a, _b;\n if (this.reconnectAttempts < this.maxReconnectAttempts) {\n var timeout = this.calculateReconnectTimeout();\n (_a = this._zustand) === null || _a === void 0 ? void 0 : _a.logger.info(\"Attempting to reconnect in \".concat(timeout, \" ms\"));\n setTimeout(function () {\n if (_this._websocket) {\n if (_this._websocket.readyState === WebSocket.OPEN) {\n return;\n }\n }\n _this.reconnectAttempts++;\n _this.connect();\n }, timeout);\n }\n else {\n (_b = this._zustand) === null || _b === void 0 ? void 0 : _b.logger.warn(\"Maximum reconnect attempts reached. Giving up.\");\n }\n };\n WebSocketWorker.prototype.onmessage = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var json;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n json = JSON.parse(data);\n (_a = this._zustand) === null || _a === void 0 ? void 0 : _a.logger.debug(\"Recieved data of length: \".concat(data.length, \" and data\\\"\"), json);\n return [4 /*yield*/, this.recieve(json)];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n WebSocketWorker.prototype.onopen = function () {\n var _a;\n (_a = this._zustand) === null || _a === void 0 ? void 0 : _a.logger.info(\"Websocket opened\");\n this.is_open = true;\n if (this._zustand)\n this._zustand.auto_progress();\n this.reconnectAttempts = 0;\n this.stepwise_fullsync();\n };\n WebSocketWorker.prototype.onclose = function () {\n var _a, _b;\n (_a = this._zustand) === null || _a === void 0 ? void 0 : _a.logger.info(\"Websocket closed\");\n _super.prototype.onclose.call(this);\n if (this._reconnect) {\n (_b = this._zustand) === null || _b === void 0 ? void 0 : _b.logger.info(\"Websocket closed,reconnecting\");\n this.auto_reconnect(); // Attempt to reconnect\n }\n };\n WebSocketWorker.prototype.on_ws_error = function () {\n var _a;\n (_a = this._zustand) === null || _a === void 0 ? void 0 : _a.logger.warn(\"Websocket error\");\n if (this._websocket) {\n this._websocket.close(); // Ensure the connection is closed before attempting to reconnect\n }\n else {\n this.auto_reconnect();\n }\n };\n WebSocketWorker.prototype.send = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b;\n return __generator(this, function (_c) {\n if (!this._websocket || this._websocket.readyState !== WebSocket.OPEN) {\n (_a = this._zustand) === null || _a === void 0 ? void 0 : _a.logger.warn(\"Websocket not connected\");\n return [2 /*return*/];\n }\n (_b = this._zustand) === null || _b === void 0 ? void 0 : _b.logger.debug(\"Sending data\", data);\n this._websocket.send(JSON.stringify(data));\n return [2 /*return*/];\n });\n });\n };\n WebSocketWorker.prototype.stop = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, _super.prototype.stop.call(this)];\n case 1:\n _a.sent();\n this._reconnect = false;\n return [2 /*return*/];\n }\n });\n });\n };\n WebSocketWorker.prototype.close = function () {\n if (this._websocket)\n this._websocket.close();\n };\n WebSocketWorker.prototype.disconnect = function () {\n _super.prototype.disconnect.call(this);\n this._reconnect = false;\n this.close();\n };\n WebSocketWorker.prototype.reconnect = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, _super.prototype.reconnect.call(this)];\n case 1:\n _b.sent();\n this._reconnect = true;\n if (!this._websocket) return [3 /*break*/, 4];\n (_a = this._zustand) === null || _a === void 0 ? void 0 : _a.logger.info(\"Reconnecting\");\n if (!(this._websocket.readyState === WebSocket.OPEN ||\n this._websocket.readyState === WebSocket.CONNECTING)) return [3 /*break*/, 4];\n if (!(this._websocket.readyState === WebSocket.CONNECTING)) return [3 /*break*/, 3];\n //await to ensure the websocket is connected, with a timeout of 2 seconds\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n if (_this._websocket === null)\n return;\n var timeout = setTimeout(function () {\n reject(\"Timeout@reconnect\");\n }, 2000);\n _this._websocket.addEventListener(\"open\", function () {\n clearTimeout(timeout);\n resolve(null);\n }, { once: true });\n if (_this._websocket.readyState === WebSocket.OPEN) {\n clearTimeout(timeout);\n resolve(null);\n }\n })];\n case 2:\n //await to ensure the websocket is connected, with a timeout of 2 seconds\n _b.sent();\n _b.label = 3;\n case 3:\n if (this._websocket.readyState === WebSocket.OPEN) {\n this.stepwise_fullsync();\n return [2 /*return*/];\n }\n _b.label = 4;\n case 4:\n this.connect();\n return [2 /*return*/];\n }\n });\n });\n };\n return WebSocketWorker;\n}(_funcnodesworker__WEBPACK_IMPORTED_MODULE_0__[\"default\"]));\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WebSocketWorker);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/funcnodes/websocketworker.ts?");
|
|
2907
2907
|
|
|
2908
2908
|
/***/ }),
|
|
2909
2909
|
|
|
@@ -2914,7 +2914,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2914
2914
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2915
2915
|
|
|
2916
2916
|
"use strict";
|
|
2917
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _websocketworker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./websocketworker */ \"./src/funcnodes/websocketworker.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\nvar WorkerManager = /** @class */ (function () {\n function WorkerManager(wsuri, zustand) {\n var _this = this;\n this.ws = null;\n this.reconnectAttempts = 0;\n this.maxReconnectAttempts = 999;\n this.initialTimeout = 200; // Initial reconnect delay in ms\n this.maxTimeout = 2000; // Maximum reconnect delay\n this.wsuri = wsuri;\n this.zustand = zustand;\n this.workers = {};\n this.on_setWorker = function (worker) {\n console.log(\"WorkerManager: on_setWorker\", worker);\n _this.zustand.worker = worker;\n };\n this.connect();\n }\n WorkerManager.prototype.connect = function () {\n var _this = this;\n this.zustand.set_progress({\n progress: 0,\n message: \"connecting to worker manager\",\n status: \"info\",\n blocking: true,\n });\n console.log(\"Connecting to websocket:\", this.wsuri);\n this.ws = new WebSocket(this.wsuri);\n this.ws.onopen = function () {\n _this.onopen();\n };\n this.ws.onclose = function () {\n _this.onclose();\n };\n this.ws.onerror = function () {\n _this.on_ws_error();\n };\n this.ws.onmessage = function (event) {\n _this.onmessage(event.data);\n };\n this.connectionTimeout = setTimeout(function () {\n var _a;\n if (((_a = _this.ws) === null || _a === void 0 ? void 0 : _a.readyState) !== WebSocket.OPEN) {\n _this.on_ws_error();\n }\n }, 5000);\n };\n WorkerManager.prototype.on_ws_error = function () {\n console.warn(\"Websocket error\");\n if (this.ws) {\n this.ws.close(); // Ensure the connection is closed before attempting to reconnect\n }\n else {\n this.reconnect();\n }\n };\n WorkerManager.prototype.onopen = function () {\n if (this.connectionTimeout) {\n clearTimeout(this.connectionTimeout);\n this.connectionTimeout = undefined;\n }\n this.zustand.auto_progress();\n console.log(\"WorkerManager: onopen\");\n if (this.ws) {\n this.ws.send(\"worker_status\");\n }\n // Get active worker from window storage\n var active_worker = window.localStorage.getItem(\"funcnodes__active_worker\");\n if (active_worker) {\n this.set_active(active_worker);\n }\n };\n WorkerManager.prototype.onmessage = function (event) {\n var msg = JSON.parse(event);\n if (msg.type === \"worker_status\") {\n console.debug(\"WorkerManager: worker_status\", msg);\n var new_state = {};\n for (var _i = 0, _a = msg.active; _i < _a.length; _i++) {\n var worker = _a[_i];\n worker.active = true;\n new_state[worker.uuid] = worker;\n }\n for (var _b = 0, _c = msg.inactive; _b < _c.length; _b++) {\n var worker = _c[_b];\n worker.active = false;\n new_state[worker.uuid] = worker;\n }\n this.zustand.workers.setState(new_state);\n return;\n }\n else if (msg.type === \"set_worker\") {\n if (msg.data.type === \"WSWorker\") {\n var url = \"ws\" +\n (msg.data.ssl ? \"s\" : \"\") +\n \"://\" +\n msg.data.host +\n \":\" +\n msg.data.port;\n this.setWorker(this.workers[msg.data.uuid] ||\n new _websocketworker__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n url: url,\n zustand: this.zustand,\n uuid: msg.data.uuid,\n }));\n }\n else {\n console.error(\"WorkerManager: unknown worker type\", msg);\n }\n //store active worker in window storage\n return;\n }\n else if (msg.type === \"progress\") {\n this.zustand.set_progress(msg);\n return;\n }\n console.error(\"WorkerManager: unknown message\", msg);\n };\n WorkerManager.prototype.setWorker = function (worker) {\n for (var w in this.workers) {\n if (w !== (worker === null || worker === void 0 ? void 0 : worker.uuid)) {\n this.workers[w].disconnect();\n }\n }\n if (worker !== undefined) {\n this.workers[worker.uuid] = worker;\n worker.reconnect();\n }\n window.localStorage.setItem(\"funcnodes__active_worker\", (worker === null || worker === void 0 ? void 0 : worker.uuid) || \"\");\n if (this.zustand.worker !== undefined) {\n this.zustand.clear_all();\n }\n this.zustand.worker = worker;\n this.on_setWorker(worker);\n };\n WorkerManager.prototype.restart_worker = function (workerid) {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n (_a = this.ws) === null || _a === void 0 ? void 0 : _a.send(JSON.stringify({ type: \"restart_worker\", workerid: workerid }));\n return [2 /*return*/];\n });\n });\n };\n WorkerManager.prototype.calculateReconnectTimeout = function () {\n // Increase timeout exponentially, capped at maxTimeout\n var timeout = Math.min(this.initialTimeout * Math.pow(2, this.reconnectAttempts), this.maxTimeout);\n return timeout;\n };\n WorkerManager.prototype.reconnect = function () {\n var _this = this;\n if (this.reconnectAttempts < this.maxReconnectAttempts) {\n var timeout = this.calculateReconnectTimeout();\n console.log(\"Attempting to reconnect in \".concat(timeout, \" ms\"));\n setTimeout(function () {\n if (_this.ws) {\n if (_this.ws.readyState === WebSocket.OPEN) {\n return;\n }\n }\n _this.reconnectAttempts++;\n _this.connect();\n }, timeout);\n }\n else {\n console.warn(\"Maximum reconnect attempts reached. Giving up.\");\n }\n };\n WorkerManager.prototype.onclose = function () {\n console.log(\"WorkerManager: onclose\");\n this.reconnect(); // Attempt to reconnect\n };\n WorkerManager.prototype.set_active = function (workerid) {\n if (!this.ws)\n return;\n this.ws.send(JSON.stringify({ type: \"set_active\", workerid: workerid }));\n };\n WorkerManager.prototype.new_worker = function (_a) {\n var name = _a.name, reference = _a.reference, copyLib = _a.copyLib, copyNS = _a.copyNS;\n if (!name)\n name = undefined;\n if (!copyLib)\n copyLib = false;\n if (!copyNS)\n copyNS = false;\n if (!reference) {\n reference = undefined;\n copyLib = false;\n copyNS = false;\n }\n if (this.ws) {\n this.ws.send(JSON.stringify({\n type: \"new_worker\",\n kwargs: {\n name: name,\n reference: reference,\n copyLib: copyLib,\n copyNS: copyNS,\n },\n }));\n }\n };\n return WorkerManager;\n}());\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WorkerManager);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/funcnodes/workermanager.ts?");
|
|
2917
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _websocketworker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./websocketworker */ \"./src/funcnodes/websocketworker.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\nvar WorkerManager = /** @class */ (function () {\n function WorkerManager(wsuri, zustand) {\n var _this = this;\n this.ws = null;\n this.reconnectAttempts = 0;\n this.maxReconnectAttempts = 999;\n this.initialTimeout = 200; // Initial reconnect delay in ms\n this.maxTimeout = 2000; // Maximum reconnect delay\n this.wsuri = wsuri;\n this.zustand = zustand;\n this.workers = {};\n this.on_setWorker = function (worker) {\n _this.zustand.worker = worker;\n };\n this.connect();\n }\n WorkerManager.prototype.connect = function () {\n var _this = this;\n this.zustand.set_progress({\n progress: 0,\n message: \"connecting to worker manager\",\n status: \"info\",\n blocking: true,\n });\n this.zustand.logger.info(\"Connecting to websocket:\", this.wsuri);\n this.ws = new WebSocket(this.wsuri);\n this.ws.onopen = function () {\n _this.onopen();\n };\n this.ws.onclose = function () {\n _this.onclose();\n };\n this.ws.onerror = function () {\n _this.on_ws_error();\n };\n this.ws.onmessage = function (event) {\n _this.onmessage(event.data);\n };\n this.connectionTimeout = setTimeout(function () {\n var _a;\n if (((_a = _this.ws) === null || _a === void 0 ? void 0 : _a.readyState) !== WebSocket.OPEN) {\n _this.on_ws_error();\n }\n }, 5000);\n };\n WorkerManager.prototype.on_ws_error = function () {\n console.warn(\"Websocket error\");\n if (this.ws) {\n this.ws.close(); // Ensure the connection is closed before attempting to reconnect\n }\n else {\n this.reconnect();\n }\n };\n WorkerManager.prototype.onopen = function () {\n if (this.connectionTimeout) {\n clearTimeout(this.connectionTimeout);\n this.connectionTimeout = undefined;\n }\n this.zustand.auto_progress();\n if (this.ws) {\n this.ws.send(\"worker_status\");\n }\n // Get active worker from window storage\n var active_worker = window.localStorage.getItem(\"funcnodes__active_worker\");\n if (active_worker) {\n this.set_active(active_worker);\n }\n };\n WorkerManager.prototype.onmessage = function (event) {\n var msg = JSON.parse(event);\n if (msg.type === \"worker_status\") {\n var new_state = {};\n for (var _i = 0, _a = msg.active; _i < _a.length; _i++) {\n var worker = _a[_i];\n worker.active = true;\n new_state[worker.uuid] = worker;\n }\n for (var _b = 0, _c = msg.inactive; _b < _c.length; _b++) {\n var worker = _c[_b];\n worker.active = false;\n new_state[worker.uuid] = worker;\n }\n this.zustand.workers.setState(new_state);\n return;\n }\n else if (msg.type === \"set_worker\") {\n if (msg.data.type === \"WSWorker\") {\n var url = \"ws\" +\n (msg.data.ssl ? \"s\" : \"\") +\n \"://\" +\n msg.data.host +\n \":\" +\n msg.data.port;\n this.setWorker(this.workers[msg.data.uuid] ||\n new _websocketworker__WEBPACK_IMPORTED_MODULE_0__[\"default\"]({\n url: url,\n zustand: this.zustand,\n uuid: msg.data.uuid,\n }));\n }\n else {\n this.zustand.logger.error(\"WorkerManager: unknown worker type\", msg);\n }\n //store active worker in window storage\n return;\n }\n else if (msg.type === \"progress\") {\n this.zustand.set_progress(msg);\n return;\n }\n this.zustand.logger.error(\"WorkerManager: unknown message\", msg);\n };\n WorkerManager.prototype.setWorker = function (worker) {\n for (var w in this.workers) {\n if (w !== (worker === null || worker === void 0 ? void 0 : worker.uuid)) {\n this.workers[w].disconnect();\n }\n }\n if (worker !== undefined) {\n this.workers[worker.uuid] = worker;\n worker.reconnect();\n }\n window.localStorage.setItem(\"funcnodes__active_worker\", (worker === null || worker === void 0 ? void 0 : worker.uuid) || \"\");\n if (this.zustand.worker !== undefined) {\n this.zustand.clear_all();\n }\n this.zustand.worker = worker;\n this.on_setWorker(worker);\n };\n WorkerManager.prototype.restart_worker = function (workerid) {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n (_a = this.ws) === null || _a === void 0 ? void 0 : _a.send(JSON.stringify({ type: \"restart_worker\", workerid: workerid }));\n return [2 /*return*/];\n });\n });\n };\n WorkerManager.prototype.calculateReconnectTimeout = function () {\n // Increase timeout exponentially, capped at maxTimeout\n var timeout = Math.min(this.initialTimeout * Math.pow(2, this.reconnectAttempts), this.maxTimeout);\n return timeout;\n };\n WorkerManager.prototype.reconnect = function () {\n var _this = this;\n if (this.reconnectAttempts < this.maxReconnectAttempts) {\n var timeout = this.calculateReconnectTimeout();\n this.zustand.logger.info(\"Attempting to reconnect in \".concat(timeout, \" ms\"));\n setTimeout(function () {\n if (_this.ws) {\n if (_this.ws.readyState === WebSocket.OPEN) {\n return;\n }\n }\n _this.reconnectAttempts++;\n _this.connect();\n }, timeout);\n }\n else {\n this.zustand.logger.warn(\"Maximum reconnect attempts reached. Giving up.\");\n }\n };\n WorkerManager.prototype.onclose = function () {\n this.zustand.logger.warn(\"WorkerManager: onclose\");\n this.reconnect(); // Attempt to reconnect\n };\n WorkerManager.prototype.set_active = function (workerid) {\n if (!this.ws)\n return;\n this.ws.send(JSON.stringify({ type: \"set_active\", workerid: workerid }));\n };\n WorkerManager.prototype.new_worker = function (_a) {\n var name = _a.name, reference = _a.reference, copyLib = _a.copyLib, copyNS = _a.copyNS;\n if (!name)\n name = undefined;\n if (!copyLib)\n copyLib = false;\n if (!copyNS)\n copyNS = false;\n if (!reference) {\n reference = undefined;\n copyLib = false;\n copyNS = false;\n }\n if (this.ws) {\n this.ws.send(JSON.stringify({\n type: \"new_worker\",\n kwargs: {\n name: name,\n reference: reference,\n copyLib: copyLib,\n copyNS: copyNS,\n },\n }));\n }\n };\n return WorkerManager;\n}());\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WorkerManager);\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/funcnodes/workermanager.ts?");
|
|
2918
2918
|
|
|
2919
2919
|
/***/ }),
|
|
2920
2920
|
|
|
@@ -2947,7 +2947,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2947
2947
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2948
2948
|
|
|
2949
2949
|
"use strict";
|
|
2950
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LibZustand: () => (/* reexport safe */ _lib__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ NodeSpaceZustand: () => (/* reexport safe */ _nodespace__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ assert_reactflow_node: () => (/* binding */ assert_reactflow_node),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib */ \"./src/states/lib.ts\");\n/* harmony import */ var _nodespace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nodespace */ \"./src/states/nodespace.ts\");\n/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node */ \"./src/states/node.ts\");\n/* harmony import */ var _reactflow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reactflow */ \"./src/states/reactflow.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n/* harmony import */ var _edge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./edge */ \"./src/states/edge.ts\");\n/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! zustand */ \"../node_modules/zustand/esm/index.mjs\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n\n\n\n\n\n\n\nvar _fill_node_frontend = function (node, fnrf_instance) {\n var frontend = node.frontend || {};\n if (!frontend.pos) {\n if (!fnrf_instance ||\n !fnrf_instance.rf_instance ||\n fnrf_instance.reactflowRef === null) {\n frontend.pos = [0, 0];\n }\n else {\n var ref = fnrf_instance.reactflowRef;\n var rect = ref.getBoundingClientRect(); // Step 2: Get bounding rectangle\n var centerX = rect.left + rect.width / 2; // Calculate center X\n var centerY = rect.top + rect.height / 2; // Calculate center Y\n var calcpos = fnrf_instance.rf_instance.screenToFlowPosition({\n x: centerX,\n y: centerY,\n });\n frontend.pos = [calcpos.x, calcpos.y];\n }\n }\n if (!frontend.size) {\n frontend.size = [200, 100];\n }\n if (!frontend.collapsed) {\n frontend.collapsed = false;\n }\n node.frontend = frontend;\n};\nvar assert_react_flow_io = function (io, fnrf_instance) {\n if (io.value === \"<NoValue>\") {\n io.value = undefined;\n }\n if (io.fullvalue === \"<NoValue>\") {\n io.fullvalue = undefined;\n }\n if (io.try_get_full_value === undefined) {\n io.try_get_full_value = function () {\n var _a;\n if (!fnrf_instance) {\n return;\n }\n if (io.node === undefined || io.id === undefined) {\n return;\n }\n (_a = fnrf_instance.worker) === null || _a === void 0 ? void 0 : _a.get_io_full_value({ nid: io.node, ioid: io.id });\n };\n }\n return io;\n};\nvar assert_reactflow_node = function (node, store, fnrf_instance) {\n _fill_node_frontend(node, fnrf_instance);\n if (node.id === undefined) {\n throw new Error(\"Node must have an id\");\n }\n for (var io in node.io) {\n node.io[io].node = node.id;\n assert_react_flow_io(node.io[io], fnrf_instance);\n }\n var extendedNode = __assign({ position: {\n x: node.frontend.pos[0],\n y: node.frontend.pos[1],\n }, data: {\n UseNodeStore: store,\n }, type: \"default\" }, node);\n return extendedNode;\n};\nvar FuncNodesReactFlowZustand = function (_a) {\n /*\n function that should be called when the remote node, e.g. in the python worker is performing an action\n */\n var _b = _a.useWorkerManager, useWorkerManager = _b === void 0 ? true : _b, _c = _a.default_worker, default_worker = _c === void 0 ? undefined : _c;\n var options = {\n useWorkerManager: useWorkerManager,\n default_worker: default_worker,\n };\n var on_node_action = function (action) {\n var _a, _b, _c;\n var rfstate = rfstore.getState();\n switch (action.type) {\n case \"add\":\n if (action.from_remote) {\n var store = ns.get_node(action.node.id, false);\n if (!store) {\n try {\n store = (0,_node__WEBPACK_IMPORTED_MODULE_2__.createNodeStore)(action.node);\n ns.nodesstates.set(action.node.id, store);\n }\n catch (e) {\n return;\n }\n }\n var new_ndoes = __spreadArray(__spreadArray([], rfstate.nodes, true), [\n assert_reactflow_node(action.node, store, iterf),\n ], false);\n rfstore.setState({ nodes: new_ndoes });\n }\n break;\n case \"update\":\n // some action reset the error, so far trigger does, so errors should remove the in_trigger flag\n if (action.node.in_trigger) {\n action.node.error = undefined;\n }\n if (action.from_remote) {\n var store = ns.get_node(action.id);\n (0,_node__WEBPACK_IMPORTED_MODULE_2__.normalize_node)(action.node);\n if (action.node.io) {\n for (var io in action.node.io) {\n var ioobj = action.node.io[io];\n // check if value in io, undefined is a valid value\n if (ioobj.hasOwnProperty(\"value\")) {\n if (ioobj.value === undefined) {\n ioobj.value = null;\n }\n else if (ioobj.value === \"<NoValue>\") {\n ioobj.value = undefined;\n }\n }\n }\n }\n var state = store.getState();\n var _d = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.deep_merge)(state, action.node), new_obj = _d.new_obj, change = _d.change;\n if (change) {\n if (action.node.io) {\n for (var io in action.node.io) {\n // if fullvalue is in the update data, set to fullvalue otherwise set to undefined\n new_obj.io[io].fullvalue = (_a = action.node.io[io]) === null || _a === void 0 ? void 0 : _a.fullvalue;\n }\n }\n assert_reactflow_node(new_obj, store, iterf);\n store.setState(new_obj);\n }\n }\n else {\n if (iterf.worker) {\n iterf.worker.locally_update_node(action);\n }\n }\n break;\n case \"delete\":\n if (action.from_remote) {\n rfstore.getState().onNodesChange([\n {\n type: \"remove\",\n id: action.id,\n },\n ]);\n }\n else {\n (_b = iterf.worker) === null || _b === void 0 ? void 0 : _b.remove_node(action.id);\n }\n break;\n case \"error\":\n console.error(\"Error\", action);\n on_node_action({\n type: \"update\",\n id: action.id,\n node: {\n in_trigger: false,\n error: action.error,\n },\n from_remote: true,\n });\n break;\n case \"trigger\":\n if (action.from_remote) {\n on_node_action({\n type: \"update\",\n id: action.id,\n node: {\n in_trigger: true,\n error: undefined,\n },\n from_remote: true,\n });\n }\n else {\n (_c = iterf.worker) === null || _c === void 0 ? void 0 : _c.trigger_node(action.id);\n }\n break;\n default:\n console.error(\"Unknown node action\", action);\n }\n };\n var on_edge_action = function (action) {\n var _a, _b, _c, _d;\n var rfstate = rfstore.getState();\n switch (action.type) {\n case \"add\":\n if (action.from_remote) {\n var edges = rfstate.edges;\n var new_edge_id_1 = (0,_edge__WEBPACK_IMPORTED_MODULE_5__.generate_edge_id)(action);\n //cehck if edge already exists including reversed\n if (edges.some(function (e) { return e.id === new_edge_id_1; })) {\n return;\n }\n var new_edge = {\n id: new_edge_id_1,\n source: action.src_nid,\n target: action.trg_nid,\n sourceHandle: action.src_ioid,\n targetHandle: action.trg_ioid,\n className: \"funcnodes-edge animated\",\n };\n rfstore.setState({ edges: __spreadArray(__spreadArray([], edges, true), [new_edge], false) });\n (_a = iterf.worker) === null || _a === void 0 ? void 0 : _a.get_remote_node_state(action.src_nid);\n (_b = iterf.worker) === null || _b === void 0 ? void 0 : _b.get_remote_node_state(action.trg_nid);\n }\n else {\n }\n break;\n case \"delete\":\n if (action.from_remote) {\n var edges = rfstate.edges;\n var del_edge_id_1 = (0,_edge__WEBPACK_IMPORTED_MODULE_5__.generate_edge_id)(action);\n var new_edges = edges.filter(function (edge) { return edge.id !== del_edge_id_1; });\n rfstore.setState({ edges: new_edges });\n (_c = iterf.worker) === null || _c === void 0 ? void 0 : _c.get_remote_node_state(action.src_nid);\n (_d = iterf.worker) === null || _d === void 0 ? void 0 : _d.get_remote_node_state(action.trg_nid);\n }\n else {\n }\n break;\n default:\n console.error(\"Unknown edge action\", action);\n }\n };\n /*\n on_node_cahnge is called by react flow when a note change event is fired\n should update the local state if something changed\n */\n var on_node_change = function (nodechange) {\n for (var _i = 0, nodechange_1 = nodechange; _i < nodechange_1.length; _i++) {\n var change = nodechange_1[_i];\n switch (change.type) {\n case \"position\":\n if (change.position) {\n on_node_action({\n type: \"update\",\n id: change.id,\n node: {\n frontend: { pos: [change.position.x, change.position.y] },\n },\n from_remote: false,\n });\n }\n break;\n case \"dimensions\":\n if (change.dimensions) {\n on_node_action({\n type: \"update\",\n id: change.id,\n node: {\n frontend: {\n size: [change.dimensions.width, change.dimensions.height],\n },\n },\n from_remote: false,\n });\n }\n break;\n }\n }\n };\n var on_edge_change = function (_edgechange) { };\n var on_connect = function (connection) {\n if (connection.source === null ||\n connection.target === null ||\n connection.sourceHandle === null ||\n connection.targetHandle === null ||\n !iterf.worker) {\n return;\n }\n iterf.worker.add_edge({\n src_nid: connection.source,\n src_ioid: connection.sourceHandle,\n trg_nid: connection.target,\n trg_ioid: connection.targetHandle,\n replace: true,\n });\n };\n var rfstore = (0,_reactflow__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n on_node_change: on_node_change,\n on_edge_change: on_edge_change,\n on_connect: on_connect,\n });\n var ns = (0,_nodespace__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({});\n var lib = (0,_lib__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n var clear_all = function () {\n var _a, _b;\n (_a = iterf.worker) === null || _a === void 0 ? void 0 : _a.disconnect();\n iterf.worker = undefined;\n (_b = iterf.workermanager) === null || _b === void 0 ? void 0 : _b.setWorker(undefined);\n iterf.lib.libstate\n .getState()\n .set({ lib: { shelves: [] }, external_worker: [] });\n iterf.nodespace.nodesstates.clear();\n iterf.useReactFlowStore.setState({ nodes: [], edges: [] });\n iterf.auto_progress();\n };\n var iterf = {\n options: options,\n lib: lib,\n workermanager: undefined,\n workers: (0,zustand__WEBPACK_IMPORTED_MODULE_6__.create)(function (_set, _get) { return ({}); }),\n render_options: (0,zustand__WEBPACK_IMPORTED_MODULE_6__.create)(function (_set, _get) { return ({}); }),\n progress_state: (0,zustand__WEBPACK_IMPORTED_MODULE_6__.create)(function (_set, _get) { return ({\n message: \"please select worker\",\n status: \"info\",\n progress: 0,\n blocking: false,\n }); }),\n update_render_options: function (options) {\n var current = iterf.render_options.getState();\n var _a = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.deep_merge)(current, options), new_obj = _a.new_obj, change = _a.change;\n if (change) {\n iterf.render_options.setState(new_obj);\n }\n },\n worker: undefined,\n nodespace: ns,\n useReactFlowStore: rfstore,\n on_node_action: on_node_action,\n on_edge_action: on_edge_action,\n reactflowRef: null,\n clear_all: clear_all,\n set_progress: function (progress) {\n if (progress.message === \"\") {\n return iterf.auto_progress();\n }\n var prev_state = iterf.progress_state.getState();\n var _a = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.deep_merge)(prev_state, progress), new_obj = _a.new_obj, change = _a.change;\n if (change) {\n iterf.progress_state.setState(new_obj);\n }\n },\n auto_progress: function () {\n if (iterf.worker === undefined) {\n return iterf.set_progress({\n progress: 0,\n message: \"please select worker\",\n status: \"error\",\n blocking: false,\n });\n }\n if (!iterf.worker.is_open) {\n return iterf.set_progress({\n progress: 0,\n message: \"connecting to worker\",\n status: \"info\",\n blocking: true,\n });\n }\n iterf.set_progress({\n progress: 1,\n message: \"running\",\n status: \"info\",\n blocking: false,\n });\n },\n plugins: (0,zustand__WEBPACK_IMPORTED_MODULE_6__.create)(function (_set, _get) { return ({}); }),\n add_plugin: function (name, plugin) {\n if (plugin === undefined)\n return;\n iterf.plugins.setState(function (prev) {\n var _a;\n return __assign(__assign({}, prev), (_a = {}, _a[name] = plugin, _a));\n });\n },\n };\n return iterf;\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FuncNodesReactFlowZustand);\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/states/fnrfzst.ts?");
|
|
2950
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LibZustand: () => (/* reexport safe */ _lib__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n/* harmony export */ NodeSpaceZustand: () => (/* reexport safe */ _nodespace__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ assert_reactflow_node: () => (/* binding */ assert_reactflow_node),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib */ \"./src/states/lib.ts\");\n/* harmony import */ var _nodespace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nodespace */ \"./src/states/nodespace.ts\");\n/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node */ \"./src/states/node.ts\");\n/* harmony import */ var _reactflow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./reactflow */ \"./src/states/reactflow.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n/* harmony import */ var _edge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./edge */ \"./src/states/edge.ts\");\n/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! zustand */ \"../node_modules/zustand/esm/index.mjs\");\n/* harmony import */ var _utils_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.ts\");\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n\n\n\n\n\n\n\n\nvar _fill_node_frontend = function (node, fnrf_instance) {\n var frontend = node.frontend || {};\n if (!frontend.pos) {\n if (!fnrf_instance ||\n !fnrf_instance.rf_instance ||\n fnrf_instance.reactflowRef === null) {\n frontend.pos = [0, 0];\n }\n else {\n var ref = fnrf_instance.reactflowRef;\n var rect = ref.getBoundingClientRect(); // Step 2: Get bounding rectangle\n var centerX = rect.left + rect.width / 2; // Calculate center X\n var centerY = rect.top + rect.height / 2; // Calculate center Y\n var calcpos = fnrf_instance.rf_instance.screenToFlowPosition({\n x: centerX,\n y: centerY,\n });\n frontend.pos = [calcpos.x, calcpos.y];\n }\n }\n if (!frontend.size) {\n frontend.size = [200, 100];\n }\n if (!frontend.collapsed) {\n frontend.collapsed = false;\n }\n node.frontend = frontend;\n};\nvar assert_react_flow_io = function (io, fnrf_instance) {\n if (io.value === \"<NoValue>\") {\n io.value = undefined;\n }\n if (io.fullvalue === \"<NoValue>\") {\n io.fullvalue = undefined;\n }\n if (io.try_get_full_value === undefined) {\n io.try_get_full_value = function () {\n var _a;\n if (!fnrf_instance) {\n return;\n }\n if (io.node === undefined || io.id === undefined) {\n return;\n }\n (_a = fnrf_instance.worker) === null || _a === void 0 ? void 0 : _a.get_io_full_value({ nid: io.node, ioid: io.id });\n };\n }\n return io;\n};\nvar assert_reactflow_node = function (node, store, fnrf_instance) {\n _fill_node_frontend(node, fnrf_instance);\n node = (0,_node__WEBPACK_IMPORTED_MODULE_2__.assert_full_node)(node);\n if (node.id === undefined) {\n throw new Error(\"Node must have an id\");\n }\n for (var io in node.io) {\n node.io[io].node = node.id;\n assert_react_flow_io(node.io[io], fnrf_instance);\n }\n var extendedNode = __assign({ position: {\n x: node.frontend.pos[0],\n y: node.frontend.pos[1],\n }, data: {\n UseNodeStore: store,\n }, type: \"default\" }, node);\n return extendedNode;\n};\nvar FuncNodesReactFlowZustand = function (_a) {\n /*\n function that should be called when the remote node, e.g. in the python worker is performing an action\n */\n var _b = _a.useWorkerManager, useWorkerManager = _b === void 0 ? true : _b, _c = _a.default_worker, default_worker = _c === void 0 ? undefined : _c;\n var options = {\n useWorkerManager: useWorkerManager,\n default_worker: default_worker,\n };\n var _add_node = function (action) {\n var _a;\n var rfstate = rfstore.getState();\n if (action.from_remote) {\n var store = ns.get_node(action.node.id, false);\n if (!store) {\n try {\n store = (0,_node__WEBPACK_IMPORTED_MODULE_2__.createNodeStore)(action.node);\n ns.nodesstates.set(action.node.id, store);\n }\n catch (e) {\n return;\n }\n }\n var node = store.getState();\n var new_ndoes = __spreadArray(__spreadArray([], rfstate.nodes, true), [\n assert_reactflow_node(node, store, iterf),\n ], false);\n rfstore.setState({ nodes: new_ndoes });\n // wait 200 ms then set the full value of all ios\n for (var io in action.node.io) {\n var ioid = action.node.io[io].id;\n if (ioid !== undefined) {\n (_a = iterf.worker) === null || _a === void 0 ? void 0 : _a.get_io_value({ nid: action.node.id, ioid: ioid });\n }\n }\n }\n };\n var _update_node = function (action) {\n var _a;\n // some action reset the error, so far trigger does, so errors should remove the in_trigger flag\n if (action.node.in_trigger) {\n action.node.error = undefined;\n }\n if (action.from_remote) {\n var store = ns.get_node(action.id);\n if (!store) {\n return;\n }\n (0,_node__WEBPACK_IMPORTED_MODULE_2__.normalize_node)(action.node);\n var state = store.getState();\n var _b = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.deep_merge)(state, action.node), new_obj = _b.new_obj, change = _b.change;\n if (change) {\n // update ios after merge, because it might be an object whch would resolt of\n // some part of the old value still being there (on the frontend)\n if (action.node.io) {\n for (var io in action.node.io) {\n // if fullvalue is in the update data, set to fullvalue otherwise set to undefined\n new_obj.io[io].fullvalue = (_a = action.node.io[io]) === null || _a === void 0 ? void 0 : _a.fullvalue;\n for (var io_1 in action.node.io) {\n var ioobj = action.node.io[io_1];\n var new_obj_io = new_obj.io[io_1];\n // check if value in io, undefined is a valid value\n if (ioobj.hasOwnProperty(\"value\")) {\n if (ioobj.value === undefined) {\n new_obj_io.value = null;\n }\n else if (ioobj.value === \"<NoValue>\") {\n new_obj_io.value = undefined;\n }\n else {\n new_obj_io.value = ioobj.value;\n }\n }\n }\n }\n }\n assert_reactflow_node(new_obj, store, iterf);\n iterf.logger.debug(\"update_action\", new_obj);\n store.setState((0,_node__WEBPACK_IMPORTED_MODULE_2__.assert_full_node)(new_obj));\n }\n }\n else {\n if (iterf.worker) {\n iterf.worker.locally_update_node(action);\n }\n }\n };\n var _delete_node = function (action) {\n var _a;\n if (action.from_remote) {\n rfstore.getState().onNodesChange([\n {\n type: \"remove\",\n id: action.id,\n },\n ]);\n }\n else {\n (_a = iterf.worker) === null || _a === void 0 ? void 0 : _a.remove_node(action.id);\n }\n };\n var _error_action = function (action) {\n iterf.logger.error(\"Error\", action);\n on_node_action({\n type: \"update\",\n id: action.id,\n node: {\n in_trigger: false,\n error: action.error,\n },\n from_remote: true,\n });\n };\n var _trigger_action = function (action) {\n var _a;\n if (action.from_remote) {\n on_node_action({\n type: \"update\",\n id: action.id,\n node: {\n in_trigger: true,\n error: undefined,\n },\n from_remote: true,\n });\n }\n else {\n (_a = iterf.worker) === null || _a === void 0 ? void 0 : _a.trigger_node(action.id);\n }\n };\n var on_node_action = function (action) {\n switch (action.type) {\n case \"add\":\n _add_node(action);\n break;\n case \"update\":\n _update_node(action);\n break;\n case \"delete\":\n _delete_node(action);\n break;\n case \"error\":\n _error_action(action);\n break;\n case \"trigger\":\n _trigger_action(action);\n break;\n default:\n iterf.logger.error(\"Unknown node action\", action);\n }\n };\n var on_edge_action = function (action) {\n var _a, _b, _c, _d;\n var rfstate = rfstore.getState();\n switch (action.type) {\n case \"add\":\n if (action.from_remote) {\n var edges = rfstate.edges;\n var new_edge_id_1 = (0,_edge__WEBPACK_IMPORTED_MODULE_5__.generate_edge_id)(action);\n //cehck if edge already exists including reversed\n if (edges.some(function (e) { return e.id === new_edge_id_1; })) {\n return;\n }\n var new_edge = {\n id: new_edge_id_1,\n source: action.src_nid,\n target: action.trg_nid,\n sourceHandle: action.src_ioid,\n targetHandle: action.trg_ioid,\n className: \"funcnodes-edge animated\",\n };\n rfstore.setState({ edges: __spreadArray(__spreadArray([], edges, true), [new_edge], false) });\n (_a = iterf.worker) === null || _a === void 0 ? void 0 : _a.get_remote_node_state(action.src_nid);\n (_b = iterf.worker) === null || _b === void 0 ? void 0 : _b.get_remote_node_state(action.trg_nid);\n }\n else {\n }\n break;\n case \"delete\":\n if (action.from_remote) {\n var edges = rfstate.edges;\n var del_edge_id_1 = (0,_edge__WEBPACK_IMPORTED_MODULE_5__.generate_edge_id)(action);\n var new_edges = edges.filter(function (edge) { return edge.id !== del_edge_id_1; });\n rfstore.setState({ edges: new_edges });\n (_c = iterf.worker) === null || _c === void 0 ? void 0 : _c.get_remote_node_state(action.src_nid);\n (_d = iterf.worker) === null || _d === void 0 ? void 0 : _d.get_remote_node_state(action.trg_nid);\n }\n else {\n }\n break;\n default:\n iterf.logger.error(\"Unknown edge action\", action);\n }\n };\n /*\n on_node_cahnge is called by react flow when a note change event is fired\n should update the local state if something changed\n */\n var on_node_change = function (nodechange) {\n for (var _i = 0, nodechange_1 = nodechange; _i < nodechange_1.length; _i++) {\n var change = nodechange_1[_i];\n switch (change.type) {\n case \"position\":\n if (change.position) {\n on_node_action({\n type: \"update\",\n id: change.id,\n node: {\n frontend: { pos: [change.position.x, change.position.y] },\n },\n from_remote: false,\n });\n }\n break;\n case \"dimensions\":\n if (change.dimensions) {\n on_node_action({\n type: \"update\",\n id: change.id,\n node: {\n frontend: {\n size: [change.dimensions.width, change.dimensions.height],\n },\n },\n from_remote: false,\n });\n }\n break;\n }\n }\n };\n var on_edge_change = function (_edgechange) { };\n var on_connect = function (connection) {\n if (connection.source === null ||\n connection.target === null ||\n connection.sourceHandle === null ||\n connection.targetHandle === null ||\n !iterf.worker) {\n return;\n }\n iterf.worker.add_edge({\n src_nid: connection.source,\n src_ioid: connection.sourceHandle,\n trg_nid: connection.target,\n trg_ioid: connection.targetHandle,\n replace: true,\n });\n };\n var rfstore = (0,_reactflow__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n on_node_change: on_node_change,\n on_edge_change: on_edge_change,\n on_connect: on_connect,\n });\n var ns = (0,_nodespace__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({});\n var lib = (0,_lib__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n var clear_all = function () {\n var _a, _b;\n (_a = iterf.worker) === null || _a === void 0 ? void 0 : _a.disconnect();\n iterf.worker = undefined;\n (_b = iterf.workermanager) === null || _b === void 0 ? void 0 : _b.setWorker(undefined);\n iterf.lib.libstate\n .getState()\n .set({ lib: { shelves: [] }, external_worker: [] });\n iterf.nodespace.nodesstates.clear();\n iterf.useReactFlowStore.setState({ nodes: [], edges: [] });\n iterf.auto_progress();\n };\n var iterf = {\n options: options,\n lib: lib,\n workermanager: undefined,\n workers: (0,zustand__WEBPACK_IMPORTED_MODULE_7__.create)(function (_set, _get) { return ({}); }),\n render_options: (0,zustand__WEBPACK_IMPORTED_MODULE_7__.create)(function (_set, _get) { return ({}); }),\n progress_state: (0,zustand__WEBPACK_IMPORTED_MODULE_7__.create)(function (_set, _get) { return ({\n message: \"please select worker\",\n status: \"info\",\n progress: 0,\n blocking: false,\n }); }),\n update_render_options: function (options) {\n var current = iterf.render_options.getState();\n var _a = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.deep_merge)(current, options), new_obj = _a.new_obj, change = _a.change;\n if (change) {\n iterf.render_options.setState(new_obj);\n }\n },\n worker: undefined,\n nodespace: ns,\n useReactFlowStore: rfstore,\n on_node_action: on_node_action,\n on_edge_action: on_edge_action,\n reactflowRef: null,\n clear_all: clear_all,\n set_progress: function (progress) {\n if (progress.message === \"\") {\n return iterf.auto_progress();\n }\n var prev_state = iterf.progress_state.getState();\n var _a = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.deep_merge)(prev_state, progress), new_obj = _a.new_obj, change = _a.change;\n if (change) {\n iterf.progress_state.setState(new_obj);\n }\n },\n auto_progress: function () {\n if (iterf.worker === undefined) {\n return iterf.set_progress({\n progress: 0,\n message: \"please select worker\",\n status: \"error\",\n blocking: false,\n });\n }\n if (!iterf.worker.is_open) {\n return iterf.set_progress({\n progress: 0,\n message: \"connecting to worker\",\n status: \"info\",\n blocking: true,\n });\n }\n iterf.set_progress({\n progress: 1,\n message: \"running\",\n status: \"info\",\n blocking: false,\n });\n },\n plugins: (0,zustand__WEBPACK_IMPORTED_MODULE_7__.create)(function (_set, _get) { return ({}); }),\n add_plugin: function (name, plugin) {\n if (plugin === undefined)\n return;\n iterf.plugins.setState(function (prev) {\n var _a;\n return __assign(__assign({}, prev), (_a = {}, _a[name] = plugin, _a));\n });\n },\n dev_settings: {\n debug: true,\n },\n logger: new _utils_logger__WEBPACK_IMPORTED_MODULE_6__.ConsoleLogger(\"fn\", _utils_logger__WEBPACK_IMPORTED_MODULE_6__.DEBUG),\n };\n return iterf;\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FuncNodesReactFlowZustand);\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/states/fnrfzst.ts?");
|
|
2951
2951
|
|
|
2952
2952
|
/***/ }),
|
|
2953
2953
|
|
|
@@ -2969,7 +2969,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2969
2969
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2970
2970
|
|
|
2971
2971
|
"use strict";
|
|
2972
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ assert_full_node: () => (/* binding */ assert_full_node),\n/* harmony export */ createNodeStore: () => (/* binding */ createNodeStore),\n/* harmony export */ normalize_node: () => (/* binding */ normalize_node)\n/* harmony export */ });\n/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zustand */ \"../node_modules/zustand/esm/index.mjs\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\n\nvar dummy_node = {\n id: \"dummy\",\n node_name: \"dummy\",\n frontend: {\n pos: [0, 0],\n size: [200, 100],\n collapsed: false,\n },\n io: {},\n name: \"dummy\",\n in_trigger: false,\n io_order: [],\n};\nvar assert_full_node = function (node) {\n if (!node.id) {\n throw new Error(\"Node must have an id\");\n }\n var new_obj = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.
|
|
2972
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ assert_full_node: () => (/* binding */ assert_full_node),\n/* harmony export */ createNodeStore: () => (/* binding */ createNodeStore),\n/* harmony export */ normalize_node: () => (/* binding */ normalize_node)\n/* harmony export */ });\n/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zustand */ \"../node_modules/zustand/esm/index.mjs\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"./src/utils/index.ts\");\n\n\nvar dummy_nodeio = {\n id: \"dummy\",\n name: \"dummy\",\n node: \"dummy\",\n full_id: \"dummy\",\n type: \"any\",\n value: undefined,\n is_input: false,\n connected: false,\n does_trigger: true,\n fullvalue: undefined,\n try_get_full_value: undefined,\n render_options: {\n set_default: true,\n type: \"any\",\n },\n};\nvar assert_full_nodeio = function (io) {\n if (!io.id) {\n throw new Error(\"IO must have an id but is missing for \" + JSON.stringify(io));\n }\n if (io.name === undefined) {\n io.name = io.id;\n }\n var new_obj = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.deep_update)(io, dummy_nodeio).new_obj;\n if (new_obj.render_options.type === \"any\" ||\n new_obj.render_options.type === undefined)\n new_obj.render_options.type = new_obj.type;\n return new_obj;\n};\nvar dummy_node = {\n id: \"dummy\",\n node_name: \"dummy\",\n frontend: {\n pos: [0, 0],\n size: [200, 100],\n collapsed: false,\n },\n io: {},\n name: \"dummy\",\n in_trigger: false,\n io_order: [],\n};\nvar assert_full_node = function (node) {\n if (!node.id) {\n throw new Error(\"Node must have an id\");\n }\n var new_obj = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.deep_update)(node, dummy_node).new_obj;\n for (var ioid in new_obj.io) {\n if (new_obj.io[ioid] === undefined)\n continue;\n var io = assert_full_nodeio(new_obj.io[ioid]);\n new_obj.io[ioid] = io;\n }\n return new_obj;\n};\nvar normalize_node = function (node) {\n if (node.io === undefined) {\n node.io = {};\n }\n if (node.io_order === undefined) {\n if (Array.isArray(node.io)) {\n node.io_order = node.io.map(function (io) { return io.id; });\n var new_io = {};\n for (var _i = 0, _a = node.io; _i < _a.length; _i++) {\n var io = _a[_i];\n new_io[io.id] = io;\n }\n node.io = new_io;\n }\n else {\n node.io_order = Object.keys(node.io);\n }\n }\n else {\n if (Array.isArray(node.io)) {\n var new_io = {};\n for (var _b = 0, _c = node.io; _b < _c.length; _b++) {\n var io = _c[_b];\n new_io[io.id] = io;\n if (!node.io_order.includes(io.id)) {\n node.io_order.push(io.id);\n }\n }\n node.io = new_io;\n }\n else {\n for (var io in node.io) {\n if (!node.io_order.includes(io)) {\n node.io_order.push(io);\n }\n }\n }\n }\n return node;\n};\nvar createNodeStore = function (node) {\n // check if node is Object\n return (0,zustand__WEBPACK_IMPORTED_MODULE_1__.create)(function (_set, _get) {\n return assert_full_node(normalize_node(node));\n });\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/states/node.ts?");
|
|
2973
2973
|
|
|
2974
2974
|
/***/ }),
|
|
2975
2975
|
|
|
@@ -2995,6 +2995,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2995
2995
|
|
|
2996
2996
|
/***/ }),
|
|
2997
2997
|
|
|
2998
|
+
/***/ "./src/utils/debugger.ts":
|
|
2999
|
+
/*!*******************************!*\
|
|
3000
|
+
!*** ./src/utils/debugger.ts ***!
|
|
3001
|
+
\*******************************/
|
|
3002
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3003
|
+
|
|
3004
|
+
"use strict";
|
|
3005
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ print_object: () => (/* binding */ print_object),\n/* harmony export */ print_object_size: () => (/* binding */ print_object_size)\n/* harmony export */ });\nvar print_object_size = function (obj, message, fnrf_zst) {\n if (!fnrf_zst) {\n return;\n }\n if (fnrf_zst.dev_settings.debug) {\n fnrf_zst.logger.debug(\"Object size: \" + JSON.stringify(obj).length + \" chars. \" + message);\n }\n};\nvar print_object = function (obj, fnrf_zst) {\n if (!fnrf_zst) {\n return;\n }\n if (fnrf_zst.dev_settings.debug) {\n fnrf_zst.logger.debug(\"Object: \", obj);\n }\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/utils/debugger.ts?");
|
|
3006
|
+
|
|
3007
|
+
/***/ }),
|
|
3008
|
+
|
|
2998
3009
|
/***/ "./src/utils/helperfunctions.ts":
|
|
2999
3010
|
/*!**************************************!*\
|
|
3000
3011
|
!*** ./src/utils/helperfunctions.ts ***!
|
|
@@ -3013,7 +3024,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
3013
3024
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3014
3025
|
|
|
3015
3026
|
"use strict";
|
|
3016
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deep_compare_objects: () => (/* reexport safe */ _objects__WEBPACK_IMPORTED_MODULE_0__.deep_compare_objects),\n/* harmony export */ deep_merge: () => (/* reexport safe */ _objects__WEBPACK_IMPORTED_MODULE_0__.deep_merge)\n/* harmony export */ });\n/* harmony import */ var _objects__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./objects */ \"./src/utils/objects.ts\");\n\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/utils/index.ts?");
|
|
3027
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deep_compare_objects: () => (/* reexport safe */ _objects__WEBPACK_IMPORTED_MODULE_0__.deep_compare_objects),\n/* harmony export */ deep_merge: () => (/* reexport safe */ _objects__WEBPACK_IMPORTED_MODULE_0__.deep_merge),\n/* harmony export */ deep_update: () => (/* reexport safe */ _objects__WEBPACK_IMPORTED_MODULE_0__.deep_update)\n/* harmony export */ });\n/* harmony import */ var _objects__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./objects */ \"./src/utils/objects.ts\");\n\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/utils/index.ts?");
|
|
3028
|
+
|
|
3029
|
+
/***/ }),
|
|
3030
|
+
|
|
3031
|
+
/***/ "./src/utils/logger.ts":
|
|
3032
|
+
/*!*****************************!*\
|
|
3033
|
+
!*** ./src/utils/logger.ts ***!
|
|
3034
|
+
\*****************************/
|
|
3035
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3036
|
+
|
|
3037
|
+
"use strict";
|
|
3038
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConsoleLogger: () => (/* binding */ ConsoleLogger),\n/* harmony export */ DEBUG: () => (/* binding */ DEBUG),\n/* harmony export */ ERROR: () => (/* binding */ ERROR),\n/* harmony export */ INFO: () => (/* binding */ INFO),\n/* harmony export */ WARN: () => (/* binding */ WARN)\n/* harmony export */ });\nvar DEBUG = 0;\nvar INFO = 10;\nvar WARN = 20;\nvar ERROR = 30;\nvar ConsoleLogger = /** @class */ (function () {\n function ConsoleLogger(name, level) {\n if (level === void 0) { level = INFO; }\n this.name = name;\n this.level = level;\n }\n ConsoleLogger.prototype.set_level = function (level) {\n this.level = level;\n };\n Object.defineProperty(ConsoleLogger.prototype, \"debug\", {\n get: function () {\n if (this.level <= DEBUG)\n return console.debug.bind(console, \"[\".concat(this.name, \"]\"), \"DEBUG:\");\n return function () { };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConsoleLogger.prototype, \"info\", {\n get: function () {\n if (this.level <= INFO) {\n return console.info.bind(console, \"[\".concat(this.name, \"]\"), \"INFO:\");\n }\n return function () { };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConsoleLogger.prototype, \"warn\", {\n get: function () {\n if (this.level <= WARN) {\n return console.warn.bind(console, \"[\".concat(this.name, \"]\"), \"WARN:\");\n }\n return function () { };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConsoleLogger.prototype, \"error\", {\n get: function () {\n if (this.level <= ERROR) {\n return console.error.bind(console, \"[\".concat(this.name, \"]\"), \"ERROR:\");\n }\n return function () { };\n },\n enumerable: false,\n configurable: true\n });\n return ConsoleLogger;\n}());\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/utils/logger.ts?");
|
|
3017
3039
|
|
|
3018
3040
|
/***/ }),
|
|
3019
3041
|
|
|
@@ -3024,7 +3046,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
3024
3046
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3025
3047
|
|
|
3026
3048
|
"use strict";
|
|
3027
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deep_compare_objects: () => (/* binding */ deep_compare_objects),\n/* harmony export */ deep_merge: () => (/* binding */ deep_merge)\n/* harmony export */ });\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/**\n * Checks if the given item is a plain object.\n * @param item The item to check.\n * @returns true if the item is a plain object, false otherwise.\n */\nfunction isPlainObject(item) {\n return Object.prototype.toString.call(item) === \"[object Object]\";\n}\nfunction deep_compare_objects(a, b) {\n // Check for strict equality first\n if (a === b)\n return true;\n // If either is null or not an object, they're not equal (strict equality would have caught `a === b` if both were null)\n if (typeof a !== \"object\" ||\n a === null ||\n typeof b !== \"object\" ||\n b === null)\n return false;\n // If they're not the same type of object, they're not equal\n if (a.constructor !== b.constructor)\n return false;\n if (a.constructor === Object || a.constructor === Array) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n // If their property lengths are different, they're different objects\n if (keysA.length !== keysB.length)\n return false;\n // Check each key in 'a' to ensure it exists in 'b' and is equal; recurse if value is an object\n for (var _i = 0, keysA_1 = keysA; _i < keysA_1.length; _i++) {\n var key = keysA_1[_i];\n if (!keysB.includes(key))\n return false;\n if (!deep_compare_objects(a[key], b[key]))\n return false;\n }\n }\n // Dates comparison\n if (a instanceof Date && b instanceof Date)\n return a.getTime() === b.getTime();\n // If we've made it this far, objects must be considered equal\n return true;\n}\n/**\n *\n * function to deeply merge two objects of type T.\n *\n * @param {T} target - The target object to be merged.\n * @param {DeepPartial<T>} source - The source object to merge into the target. All properties of this object are optional.\n *\n * @returns {T} An object containing the merged object (new_obj) and a boolean indicating if there was a change (change).\n */\nvar deep_merge = function (target, source) {\n var change = false;\n if (!isPlainObject(target)) {\n throw new Error(\"Target must be a plain object\");\n }\n if (!isPlainObject(source)) {\n throw new Error(\"Source must be a plain object\");\n }\n var new_obj = __assign({}, target);\n Object.keys(source).forEach(function (key) {\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n var sourceValue = source[key];\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n var targetValue = target[key];\n if (isPlainObject(sourceValue) && isPlainObject(targetValue)) {\n // If both the target and source values are plain objects, merge them\n var _a = deep_merge(targetValue, sourceValue), mergedObj = _a.new_obj, didChange = _a.change;\n if (didChange) {\n change = true;\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n new_obj[key] = mergedObj;\n }\n }\n else if (!deep_compare_objects(targetValue, sourceValue)) {\n change = true;\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n new_obj[key] = sourceValue;\n }\n });\n return { new_obj: new_obj, change: change };\n
|
|
3049
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deep_compare_objects: () => (/* binding */ deep_compare_objects),\n/* harmony export */ deep_merge: () => (/* binding */ deep_merge),\n/* harmony export */ deep_update: () => (/* binding */ deep_update)\n/* harmony export */ });\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/**\n * Checks if the given item is a plain object.\n * @param item The item to check.\n * @returns true if the item is a plain object, false otherwise.\n */\nfunction isPlainObject(item) {\n return Object.prototype.toString.call(item) === \"[object Object]\";\n}\nfunction deep_compare_objects(a, b) {\n // Check for strict equality first\n if (a === b)\n return true;\n // If either is null or not an object, they're not equal (strict equality would have caught `a === b` if both were null)\n if (typeof a !== \"object\" ||\n a === null ||\n typeof b !== \"object\" ||\n b === null)\n return false;\n // If they're not the same type of object, they're not equal\n if (a.constructor !== b.constructor)\n return false;\n if (a.constructor === Object || a.constructor === Array) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n // If their property lengths are different, they're different objects\n if (keysA.length !== keysB.length)\n return false;\n // Check each key in 'a' to ensure it exists in 'b' and is equal; recurse if value is an object\n for (var _i = 0, keysA_1 = keysA; _i < keysA_1.length; _i++) {\n var key = keysA_1[_i];\n if (!keysB.includes(key))\n return false;\n if (!deep_compare_objects(a[key], b[key]))\n return false;\n }\n }\n // Dates comparison\n if (a instanceof Date && b instanceof Date)\n return a.getTime() === b.getTime();\n // If we've made it this far, objects must be considered equal\n return true;\n}\n/**\n *\n * function to deeply merge two objects of type T.\n *\n * @param {T} target - The target object to be merged.\n * @param {DeepPartial<T>} source - The source object to merge into the target. All properties of this object are optional.\n *\n * @returns {T} An object containing the merged object (new_obj) and a boolean indicating if there was a change (change).\n */\nvar deep_merge = function (target, source) {\n var change = false;\n if (!isPlainObject(target)) {\n throw new Error(\"Target must be a plain object\");\n }\n if (!isPlainObject(source)) {\n throw new Error(\"Source must be a plain object\");\n }\n var new_obj = __assign({}, target);\n Object.keys(source).forEach(function (key) {\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n var sourceValue = source[key];\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n var targetValue = target[key];\n if (isPlainObject(sourceValue) && isPlainObject(targetValue)) {\n // If both the target and source values are plain objects, merge them\n var _a = deep_merge(targetValue, sourceValue), mergedObj = _a.new_obj, didChange = _a.change;\n if (didChange) {\n change = true;\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n new_obj[key] = mergedObj;\n }\n }\n else if (!deep_compare_objects(targetValue, sourceValue)) {\n change = true;\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n new_obj[key] = sourceValue;\n }\n });\n return { new_obj: new_obj, change: change };\n};\n/**\n * Deeply updates the target object with missing keys from the source object.\n * @param target The target object to be updated.\n * @param source The source object containing keys to add to the target.\n * @returns An object containing the updated target object (new_obj) and a boolean indicating if there was a change (change).\n */\nvar deep_update = function (target, source) {\n var change = false;\n if (!isPlainObject(target)) {\n throw new Error(\"Target must be a plain object\");\n }\n if (!isPlainObject(source)) {\n throw new Error(\"Source must be a plain object\");\n }\n // @ts-ignore new_object is initial not T but DeepPartial<T>\n var new_obj = __assign({}, target);\n Object.keys(source).forEach(function (key) {\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n var sourceValue = source[key];\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n var targetValue = target[key];\n if (targetValue === undefined && sourceValue === undefined)\n return;\n if (targetValue === undefined) {\n change = true;\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n new_obj[key] = sourceValue;\n return;\n }\n if (isPlainObject(sourceValue)) {\n if (isPlainObject(targetValue)) {\n // Recursively update nested objects\n var _a = deep_update(targetValue, sourceValue), updatedObj = _a.new_obj, didChange = _a.change;\n if (didChange) {\n change = true;\n // @ts-ignore: Type 'string' cannot be used to index type 'T\n new_obj[key] = updatedObj;\n }\n }\n else {\n // sourceValue is an object but targetValue is not - update does nothing\n }\n }\n else {\n // sourceValue is not an object but targetValue is not undefined - update does nothing\n }\n });\n return { new_obj: new_obj, change: change };\n};\n\n\n\n//# sourceURL=webpack://FuncNodesReact/./src/utils/objects.ts?");
|
|
3028
3050
|
|
|
3029
3051
|
/***/ }),
|
|
3030
3052
|
|