@linkdlab/funcnodes_react_flow 0.3.9 → 0.3.10
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/css/style.css +1 -1
- package/dist/esm/index.esm.js +17 -12
- package/dist/types/frontend/datarenderer/rendermappings.d.ts +1 -1
- 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/funcnodesreactflow/react_flow_layer.d.ts +5 -1
- package/dist/types/frontend/funcnodesreactflow/react_flow_layer.d.ts.map +1 -1
- package/dist/types/frontend/header/index.d.ts.map +1 -1
- package/dist/types/frontend/lib.d.ts.map +1 -1
- package/dist/types/frontend/node/node.d.ts.map +1 -1
- package/dist/types/funcnodes/funcnodesworker.d.ts +4 -2
- package/dist/types/funcnodes/funcnodesworker.d.ts.map +1 -1
- package/dist/types/funcnodes/websocketworker.d.ts.map +1 -1
- package/dist/types/index.d.ts +12 -6
- 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/renderer.d.ts +24 -0
- package/dist/types/plugin/renderer.d.ts.map +1 -0
- package/dist/types/states/fnrfzst.t.d.ts +10 -3
- package/dist/types/states/fnrfzst.t.d.ts.map +1 -1
- package/dist/types/states/lib.t.d.ts +5 -5
- package/dist/types/states/lib.t.d.ts.map +1 -1
- package/dist/types/states/node.t.d.ts +1 -0
- package/dist/types/states/node.t.d.ts.map +1 -1
- package/dist/umd/index.umd.js +11 -11
- package/package.json +76 -76
package/dist/esm/index.esm.js
CHANGED
|
@@ -2576,7 +2576,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2576
2576
|
\******************************************************/
|
|
2577
2577
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2578
2578
|
|
|
2579
|
-
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 */ \"react\");\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 _Outputrenderer = {};\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 Outputrenderer: _Outputrenderer,\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, _f;\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_OUTPUT_RENDER\":\n if (!overwrite && state.Outputrenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { Outputrenderer: __assign(__assign({}, state.Outputrenderer), (_b = {}, _b[action.payload.type] = action.payload.component, _b)) });\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), (_c = {}, _c[action.payload.type] = action.payload.component, _c)) });\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), (_d = {}, _d[action.payload.type] = action.payload.component, _d)) });\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), (_e = {}, _e[action.payload.type] = action.payload.component, _e)) });\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), (_f = {}, _f[action.payload.type] = action.payload.component, _f)) });\n case \"EXTEND_FROM_PLUGIN\":\n var something_new = false;\n var checkpairs = [\n [action.payload.plugin.input_renderers || {}, state.Inputrenderer],\n [action.payload.plugin.output_renderers || {}, state.Outputrenderer],\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 _g = checkpairs_1[_i], new_renderer = _g[0], old_renderer = _g[1];\n if (Object.keys(new_renderer).length > 0) {\n if (overwrite) {\n something_new = true;\n }\n else {\n for (var key in new_renderer) {\n if (!old_renderer[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 _h = 0, checkpairs_2 = checkpairs; _h < checkpairs_2.length; _h++) {\n var _j = checkpairs_2[_h], new_renderer = _j[0], old_renderer = _j[1];\n for (var key in new_renderer) {\n if (overwrite || !old_renderer[key]) {\n old_renderer[key] = new_renderer[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 * - Outputrenderer: A mapping of output 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 * - extendOutputRenderMapping: A function to extend the output 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 extendOutputRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_OUTPUT_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 Outputrenderer: state.Outputrenderer,\n HandlePreviewRenderer: state.HandlePreviewRenderer,\n DataOverlayRenderer: state.DataOverlayRenderer,\n DataPreviewViewRenderer: state.DataPreviewViewRenderer,\n DataViewRenderer: state.DataViewRenderer,\n InLineRenderer: state.InLineRenderer,\n extendInputRenderMapping: extendInputRenderMapping,\n extendOutputRenderMapping: extendOutputRenderMapping,\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 Outputrenderer: _initialRenderMappings.Outputrenderer,\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 extendOutputRenderMapping: 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://@linkdlab/funcnodes_react_flow/./src/frontend/datarenderer/rendermappings.tsx?");
|
|
2579
|
+
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 */ \"react\");\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 _Outputrenderer = {};\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 Outputrenderer: _Outputrenderer,\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, _f;\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_OUTPUT_RENDER\":\n if (!overwrite && state.Outputrenderer[action.payload.type]) {\n return state;\n }\n return __assign(__assign({}, state), { Outputrenderer: __assign(__assign({}, state.Outputrenderer), (_b = {}, _b[action.payload.type] = action.payload.component, _b)) });\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), (_c = {}, _c[action.payload.type] = action.payload.component, _c)) });\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), (_d = {}, _d[action.payload.type] = action.payload.component, _d)) });\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), (_e = {}, _e[action.payload.type] = action.payload.component, _e)) });\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), (_f = {}, _f[action.payload.type] = action.payload.component, _f)) });\n case \"EXTEND_FROM_PLUGIN\":\n var something_new = false;\n var checkpairs = [\n [action.payload.plugin.input_renderers || {}, state.Inputrenderer],\n [action.payload.plugin.output_renderers || {}, state.Outputrenderer],\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 _g = checkpairs_1[_i], new_renderer = _g[0], old_renderer = _g[1];\n if (Object.keys(new_renderer).length > 0) {\n if (overwrite) {\n something_new = true;\n }\n else {\n for (var key in new_renderer) {\n if (!old_renderer[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 _h = 0, checkpairs_2 = checkpairs; _h < checkpairs_2.length; _h++) {\n var _j = checkpairs_2[_h], new_renderer = _j[0], old_renderer = _j[1];\n for (var key in new_renderer) {\n if (overwrite || !old_renderer[key]) {\n old_renderer[key] = new_renderer[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 * - Outputrenderer: A mapping of output 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 * - extendOutputRenderMapping: A function to extend the output 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 extendOutputRenderMapping = function (type, component, options) {\n dispatch({\n type: \"EXTEND_OUTPUT_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 renderplugin = plugins[plugin].RendererPlugin;\n if (renderplugin)\n extendFromPlugin(renderplugin);\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 Outputrenderer: state.Outputrenderer,\n HandlePreviewRenderer: state.HandlePreviewRenderer,\n DataOverlayRenderer: state.DataOverlayRenderer,\n DataPreviewViewRenderer: state.DataPreviewViewRenderer,\n DataViewRenderer: state.DataViewRenderer,\n InLineRenderer: state.InLineRenderer,\n extendInputRenderMapping: extendInputRenderMapping,\n extendOutputRenderMapping: extendOutputRenderMapping,\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 Outputrenderer: _initialRenderMappings.Outputrenderer,\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 extendOutputRenderMapping: 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://@linkdlab/funcnodes_react_flow/./src/frontend/datarenderer/rendermappings.tsx?");
|
|
2580
2580
|
|
|
2581
2581
|
/***/ }),
|
|
2582
2582
|
|
|
@@ -2606,7 +2606,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2606
2606
|
\***************************************************/
|
|
2607
2607
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2608
2608
|
|
|
2609
|
-
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 */ \"react\");\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\");\n/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../node */ \"./src/frontend/node/index.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\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.set_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\"],
|
|
2609
|
+
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 */ \"react\");\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\");\n/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../node */ \"./src/frontend/node/index.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\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, flow = _a.flow;\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:\n fnrf_zst.set_progress({\n progress: 0,\n message: \"connecting to worker manager\",\n status: \"info\",\n blocking: true,\n });\n 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.set_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\"], __assign({}, flow)),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_node__WEBPACK_IMPORTED_MODULE_7__.NodeSettings, null))))));\n};\nvar FUNCNODESREACTFLOW_MAPPER = {};\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.on_sync_complete, on_sync_complete = _d === void 0 ? undefined : _d, _e = _a.header, header = _e === void 0 ? {} : _e, id = _a.id;\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 if (id === undefined || id === null) {\n id = \"fnrf_\" + Math.random().toString(36).substring(7);\n }\n // @ts-ignore\n if (window.fnrf_zst === undefined) {\n // @ts-ignore\n window.fnrf_zst = FUNCNODESREACTFLOW_MAPPER;\n }\n if (FUNCNODESREACTFLOW_MAPPER[id] === undefined) {\n var fnrf_zst = (0,_states_fnrfzst__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n useWorkerManager: useWorkerManager,\n default_worker: default_worker,\n on_sync_complete: on_sync_complete,\n });\n FUNCNODESREACTFLOW_MAPPER[id] = fnrf_zst;\n }\n if (default_worker) {\n default_worker.set_zustand(FUNCNODESREACTFLOW_MAPPER[id]);\n }\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(InnerFuncnodesReactFlow, { fnrf_zst: FUNCNODESREACTFLOW_MAPPER[id], header: header }));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FuncnodesReactFlow);\n\n\n\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/funcnodesreactflow/index.tsx?");
|
|
2610
2610
|
|
|
2611
2611
|
/***/ }),
|
|
2612
2612
|
|
|
@@ -2616,7 +2616,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2616
2616
|
\**************************************************************/
|
|
2617
2617
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2618
2618
|
|
|
2619
|
-
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 reactflow_dist_style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! reactflow/dist/style.css */ \"../node_modules/reactflow/dist/style.css\");\n/* harmony import */ var _funcnodesreactflow_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./funcnodesreactflow.scss */ \"./src/frontend/funcnodesreactflow/funcnodesreactflow.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/core/dist/esm/index.mjs\");\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/background/dist/esm/index.mjs\");\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/minimap/dist/esm/index.mjs\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! .. */ \"./src/frontend/index.tsx\");\n/* harmony import */ var zustand_react_shallow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! zustand/react/shallow */ \"../node_modules/zustand/esm/react/shallow.mjs\");\n/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../node */ \"./src/frontend/node/index.tsx\");\n/* harmony import */ var _edge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../edge */ \"./src/frontend/edge.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// import { useForceGraph } from \"../../utils/autolayout\";\nvar selector = function (state) { return ({\n nodes: state.nodes,\n edges: state.edges,\n onNodesChange: state.onNodesChange,\n onEdgesChange: state.onEdgesChange,\n onConnect: state.onConnect,\n}); };\nvar nodeTypes = { default: _node__WEBPACK_IMPORTED_MODULE_4__[\"default\"] };\nvar edgeTypes = {\n default: _edge__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n};\nvar ReactFlowManager = function () {\n var rfinstance = (0,reactflow__WEBPACK_IMPORTED_MODULE_6__.useReactFlow)();\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_2__.useContext)(___WEBPACK_IMPORTED_MODULE_3__.FuncNodesContext);\n fnrf_zst.rf_instance = rfinstance;\n // useForceGraph();\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n};\nvar KeyHandler = function () {\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_2__.useContext)(___WEBPACK_IMPORTED_MODULE_3__.FuncNodesContext);\n var delPressed = (0,reactflow__WEBPACK_IMPORTED_MODULE_6__.useKeyPress)(\"Delete\");\n var edges = (0,reactflow__WEBPACK_IMPORTED_MODULE_6__.useEdges)();\n var nodes = (0,reactflow__WEBPACK_IMPORTED_MODULE_6__.useNodes)();\n if (delPressed) {\n for (var _i = 0, edges_1 = edges; _i < edges_1.length; _i++) {\n var edge = edges_1[_i];\n if (edge.selected) {\n if (!fnrf_zst.worker)\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n if (!edge.source || !edge.target)\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n if (!edge.sourceHandle || !edge.targetHandle)\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n fnrf_zst.worker.remove_edge({\n src_nid: edge.source,\n src_ioid: edge.sourceHandle,\n trg_nid: edge.target,\n trg_ioid: edge.targetHandle,\n });\n }\n }\n for (var _a = 0, nodes_1 = nodes; _a < nodes_1.length; _a++) {\n var node = nodes_1[_a];\n if (node.selected) {\n if (!fnrf_zst.worker)\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n fnrf_zst.worker.remove_node(node.id);\n }\n }\n }\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n};\nvar ContextMenu = function (_a) {\n var id = _a.id, top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom, props = __rest(_a, [\"id\", \"top\", \"left\", \"right\", \"bottom\"]);\n var _b = (0,reactflow__WEBPACK_IMPORTED_MODULE_6__.useReactFlow)(), getNode = _b.getNode, setNodes = _b.setNodes, addNodes = _b.addNodes, setEdges = _b.setEdges;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_2__.useContext)(___WEBPACK_IMPORTED_MODULE_3__.FuncNodesContext);\n var duplicateNode = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function () {\n var rfnode = getNode(id);\n if (!rfnode)\n return;\n var position = {\n x: rfnode.position.x + 50,\n y: rfnode.position.y + 50,\n };\n addNodes(__assign(__assign({}, rfnode), { id: \"\".concat(rfnode.id, \"-copy\"), position: position }));\n }, [id, getNode, addNodes]);\n var deleteNode = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function () {\n fnrf_zst.on_node_action({ type: \"delete\", id: id, from_remote: false });\n }, [id, setNodes, setEdges]);\n var nodestore = fnrf_zst.nodespace.get_node(id, false);\n if (!nodestore)\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null, \" \");\n var node = nodestore();\n return (react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"div\", __assign({ style: { top: top, left: left, right: right, bottom: bottom }, className: \"context-menu\" }, props),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"p\", { style: { fontWeight: \"bold\" } },\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"small\", null, node.name)),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"button\", { onClick: duplicateNode }, \"duplicate\"),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"button\", { onClick: deleteNode }, \"delete\")));\n};\nvar ReactFlowLayer = function () {\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_2__.useContext)(___WEBPACK_IMPORTED_MODULE_3__.FuncNodesContext);\n var reactflowRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {\n fnrf_zst.reactflowRef = reactflowRef.current;\n }, [reactflowRef]);\n var _a = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null), menu = _a[0], setMenu = _a[1];\n var onSelectionChange = function (_a) {\n var nodes = _a.nodes, edges = _a.edges;\n var cs = fnrf_zst.local_state.getState();\n fnrf_zst.local_state.setState(__assign(__assign({}, cs), { selected_nodes: nodes.map(function (node) { return node.id; }), selected_edges: edges.map(function (edge) { return edge.id; }) }));\n };\n // const onNodeContextMenu = useCallback(\n // (event: React.MouseEvent, node: Node) => {\n // if (!reactflowRef.current) return;\n // // Prevent native context menu from showing\n // event.preventDefault();\n // // Calculate position of the context menu. We want to make sure it\n // // doesn't get positioned off-screen.\n // const pane = reactflowRef.current.getBoundingClientRect();\n // const clientX = event.clientX as number;\n // const clientY = event.clientY as number;\n // setMenu({\n // id: node.id,\n // top: clientY < pane.height - 200 ? clientY : undefined,\n // left: clientX < pane.width - 200 ? clientX : undefined,\n // right: clientX >= pane.width - 200 ? pane.width - clientX : undefined,\n // bottom:\n // clientY >= pane.height - 200 ? pane.height - clientY : undefined,\n // });\n // },\n // [setMenu]\n // );\n var onPaneClick = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function () { return setMenu(null); }, [setMenu]);\n var _b = fnrf_zst.useReactFlowStore((0,zustand_react_shallow__WEBPACK_IMPORTED_MODULE_7__.useShallow)(selector)), nodes = _b.nodes, edges = _b.edges, onNodesChange = _b.onNodesChange, onEdgesChange = _b.onEdgesChange, onConnect = _b.onConnect;\n return (react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"div\", { className: \"reactflowlayer\" },\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(reactflow__WEBPACK_IMPORTED_MODULE_6__.ReactFlow, { nodes: nodes, edges: edges, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, onConnect: onConnect, nodeTypes: nodeTypes, edgeTypes: edgeTypes, minZoom: 0.1, maxZoom: 2, fitView: true, onSelectionChange: onSelectionChange, ref: reactflowRef, \n // onNodeContextMenu={onNodeContextMenu}\n onPaneClick: onPaneClick },\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(ReactFlowManager, null),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(KeyHandler, null),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(reactflow__WEBPACK_IMPORTED_MODULE_8__.Background, { color: \"#888\" // Color of the grid lines\n , gap: 16, size: 1 }),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(reactflow__WEBPACK_IMPORTED_MODULE_9__.MiniMap, { nodeStrokeWidth: 3, pannable: true, zoomable: true, zoomStep: 3 }),\n menu && react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(ContextMenu, __assign({ onClick: onPaneClick }, menu)))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReactFlowLayer);\n\n\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/funcnodesreactflow/react_flow_layer.tsx?");
|
|
2619
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ nodeTypes: () => (/* binding */ nodeTypes)\n/* harmony export */ });\n/* harmony import */ var reactflow_dist_style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! reactflow/dist/style.css */ \"../node_modules/reactflow/dist/style.css\");\n/* harmony import */ var _funcnodesreactflow_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./funcnodesreactflow.scss */ \"./src/frontend/funcnodesreactflow/funcnodesreactflow.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/core/dist/esm/index.mjs\");\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/background/dist/esm/index.mjs\");\n/* harmony import */ var reactflow__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! reactflow */ \"../node_modules/@reactflow/minimap/dist/esm/index.mjs\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! .. */ \"./src/frontend/index.tsx\");\n/* harmony import */ var zustand_react_shallow__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! zustand/react/shallow */ \"../node_modules/zustand/esm/react/shallow.mjs\");\n/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../node */ \"./src/frontend/node/index.tsx\");\n/* harmony import */ var _edge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../edge */ \"./src/frontend/edge.tsx\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __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 __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// import { useForceGraph } from \"../../utils/autolayout\";\nvar selector = function (state) { return ({\n nodes: state.nodes,\n edges: state.edges,\n onNodesChange: state.onNodesChange,\n onEdgesChange: state.onEdgesChange,\n onConnect: state.onConnect,\n}); };\nvar nodeTypes = { default: _node__WEBPACK_IMPORTED_MODULE_4__[\"default\"] };\nvar edgeTypes = {\n default: _edge__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n};\nvar ReactFlowManager = function () {\n var rfinstance = (0,reactflow__WEBPACK_IMPORTED_MODULE_7__.useReactFlow)();\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_2__.useContext)(___WEBPACK_IMPORTED_MODULE_3__.FuncNodesContext);\n fnrf_zst.rf_instance = rfinstance;\n // useForceGraph();\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n};\nvar KeyHandler = function () {\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_2__.useContext)(___WEBPACK_IMPORTED_MODULE_3__.FuncNodesContext);\n var delPressed = (0,reactflow__WEBPACK_IMPORTED_MODULE_7__.useKeyPress)(\"Delete\");\n var edges = (0,reactflow__WEBPACK_IMPORTED_MODULE_7__.useEdges)();\n var nodes = (0,reactflow__WEBPACK_IMPORTED_MODULE_7__.useNodes)();\n if (delPressed) {\n for (var _i = 0, edges_1 = edges; _i < edges_1.length; _i++) {\n var edge = edges_1[_i];\n if (edge.selected) {\n if (!fnrf_zst.worker)\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n if (!edge.source || !edge.target)\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n if (!edge.sourceHandle || !edge.targetHandle)\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n fnrf_zst.worker.remove_edge({\n src_nid: edge.source,\n src_ioid: edge.sourceHandle,\n trg_nid: edge.target,\n trg_ioid: edge.targetHandle,\n });\n }\n }\n for (var _a = 0, nodes_1 = nodes; _a < nodes_1.length; _a++) {\n var node = nodes_1[_a];\n if (node.selected) {\n if (!fnrf_zst.worker)\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n fnrf_zst.worker.remove_node(node.id);\n }\n }\n }\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null);\n};\nvar ContextMenu = function (_a) {\n var id = _a.id, top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom, props = __rest(_a, [\"id\", \"top\", \"left\", \"right\", \"bottom\"]);\n var _b = (0,reactflow__WEBPACK_IMPORTED_MODULE_7__.useReactFlow)(), getNode = _b.getNode, setNodes = _b.setNodes, addNodes = _b.addNodes, setEdges = _b.setEdges;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_2__.useContext)(___WEBPACK_IMPORTED_MODULE_3__.FuncNodesContext);\n var duplicateNode = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function () {\n var rfnode = getNode(id);\n if (!rfnode)\n return;\n var position = {\n x: rfnode.position.x + 50,\n y: rfnode.position.y + 50,\n };\n addNodes(__assign(__assign({}, rfnode), { id: \"\".concat(rfnode.id, \"-copy\"), position: position }));\n }, [id, getNode, addNodes]);\n var deleteNode = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function () {\n fnrf_zst.on_node_action({ type: \"delete\", id: id, from_remote: false });\n }, [id, setNodes, setEdges]);\n var nodestore = fnrf_zst.nodespace.get_node(id, false);\n if (!nodestore)\n return react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].Fragment, null, \" \");\n var node = nodestore();\n return (react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"div\", __assign({ style: { top: top, left: left, right: right, bottom: bottom }, className: \"context-menu\" }, props),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"p\", { style: { fontWeight: \"bold\" } },\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"small\", null, node.name)),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"button\", { onClick: duplicateNode }, \"duplicate\"),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"button\", { onClick: deleteNode }, \"delete\")));\n};\nvar ReactFlowLayer = function (_a) {\n var props = __rest(_a, []);\n var fullprops = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.deep_merge)({ minimap: true, static: false, minZoom: 0.1, maxZoom: 5 }, props).new_obj;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_2__.useContext)(___WEBPACK_IMPORTED_MODULE_3__.FuncNodesContext);\n var reactflowRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {\n fnrf_zst.reactflowRef = reactflowRef.current;\n }, [reactflowRef]);\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(null), menu = _b[0], setMenu = _b[1];\n var onSelectionChange = function (_a) {\n var nodes = _a.nodes, edges = _a.edges;\n var cs = fnrf_zst.local_state.getState();\n fnrf_zst.local_state.setState(__assign(__assign({}, cs), { selected_nodes: nodes.map(function (node) { return node.id; }), selected_edges: edges.map(function (edge) { return edge.id; }) }));\n };\n var onPaneClick = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(function () { return setMenu(null); }, [setMenu]);\n var _c = fnrf_zst.useReactFlowStore((0,zustand_react_shallow__WEBPACK_IMPORTED_MODULE_8__.useShallow)(selector)), nodes = _c.nodes, edges = _c.edges, onNodesChange = _c.onNodesChange, onEdgesChange = _c.onEdgesChange, onConnect = _c.onConnect;\n return (react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(\"div\", { className: \"reactflowlayer\" },\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(reactflow__WEBPACK_IMPORTED_MODULE_7__.ReactFlow, { nodes: nodes, edges: edges, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, onConnect: onConnect, nodeTypes: nodeTypes, edgeTypes: edgeTypes, minZoom: fullprops.minZoom, maxZoom: fullprops.maxZoom, fitView: true, onSelectionChange: onSelectionChange, ref: reactflowRef, \n // onNodeContextMenu={onNodeContextMenu}\n onPaneClick: onPaneClick, \n //multiSelectionKeyCode=\"Control\"\n panOnDrag: !fullprops.static },\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(ReactFlowManager, null),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(KeyHandler, null),\n react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(reactflow__WEBPACK_IMPORTED_MODULE_9__.Background, { color: \"#888\" // Color of the grid lines\n , gap: 16, size: 1 }),\n fullprops.minimap && (react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(reactflow__WEBPACK_IMPORTED_MODULE_10__.MiniMap, { nodeStrokeWidth: 3, pannable: !fullprops.static, zoomable: !fullprops.static, zoomStep: 3 })),\n menu && react__WEBPACK_IMPORTED_MODULE_2__[\"default\"].createElement(ContextMenu, __assign({ onClick: onPaneClick }, menu)))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReactFlowLayer);\n\n\n\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/funcnodesreactflow/react_flow_layer.tsx?");
|
|
2620
2620
|
|
|
2621
2621
|
/***/ }),
|
|
2622
2622
|
|
|
@@ -2626,7 +2626,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2626
2626
|
\***************************************/
|
|
2627
2627
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2628
2628
|
|
|
2629
|
-
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 */ \"react\");\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\");\n/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ \"../node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs\");\n/* harmony import */ var _mui_icons_material_MenuRounded__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/icons-material/MenuRounded */ \"../node_modules/@mui/icons-material/MenuRounded.js\");\n/* harmony import */ var _mui_material_Typography__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material/Typography */ \"../node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material_Stack__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material/Stack */ \"../node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_icons_material_ChevronRight__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/icons-material/ChevronRight */ \"../node_modules/@mui/icons-material/ChevronRight.js\");\n/* harmony import */ var _utils_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/data */ \"./src/utils/data.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};\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\n\nvar NewWorkerDialog = function (_a) {\n var trigger = _a.trigger, setOpen = _a.setOpen, open = _a.open;\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\"], { setOpen: setOpen, open: open, 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 setOpen(false);\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 WorkerMenu = function () {\n var _a;\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 _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isNewWorkerDialogOpen = _b[0], setNewWorkerDialogOpen = _b[1];\n var workerselectchange = function (workerid) {\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 var exportWorker = function () { return __awaiter(void 0, void 0, void 0, function () {\n var data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!fnrf_zst.worker)\n return [2 /*return*/];\n return [4 /*yield*/, fnrf_zst.worker.export()];\n case 1:\n data = _a.sent();\n (0,_utils_data__WEBPACK_IMPORTED_MODULE_4__.downloadBase64)(data, \"worker.fnw\", \"application/zip\");\n return [2 /*return*/];\n }\n });\n }); };\n var updateWorker = function () { return __awaiter(void 0, void 0, void 0, function () {\n var ans, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!fnrf_zst.worker)\n return [2 /*return*/];\n ans = window.confirm(\"Updateing the worker might replace the current nodespace, continue?\");\n if (!ans)\n return [2 /*return*/];\n return [4 /*yield*/, (0,_utils_data__WEBPACK_IMPORTED_MODULE_4__.fileDialogToBase64)(\".fnw\")];\n case 1:\n data = _a.sent();\n fnrf_zst.worker.update_from_export(data);\n return [2 /*return*/];\n }\n });\n }); };\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(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Root, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Trigger, { asChild: true },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"styledbtn\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_material_Stack__WEBPACK_IMPORTED_MODULE_6__[\"default\"], { direction: \"row\", spacing: 1 },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_material_Typography__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, \"Worker\"),\n \" \",\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_MenuRounded__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null)))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Portal, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Content, { className: \"headermenucontent\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Group, null,\n fnrf_zst.options.useWorkerManager && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Sub, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.SubTrigger, { className: \"headermenuitem submenuitem\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_material_Stack__WEBPACK_IMPORTED_MODULE_6__[\"default\"], { direction: \"row\", spacing: 1 },\n \"Select\",\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_ChevronRight__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Portal, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.SubContent, { className: \"headermenucontent\", sideOffset: 2, alignOffset: -5 },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.RadioGroup, { value: (_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.uuid, onValueChange: function (value) {\n workerselectchange(value);\n } }, Object.keys(workersstate)\n .sort(function (a, b) {\n // First, sort by active status (active workers come first)\n if (workersstate[a].active &&\n !workersstate[b].active)\n return -1;\n if (!workersstate[a].active &&\n workersstate[b].active)\n return 1;\n // If both are active or both are inactive, sort by name or ID\n var nameA = workersstate[a].name || a;\n var nameB = workersstate[b].name || b;\n return nameA.localeCompare(nameB);\n })\n .map(function (workerid) {\n var _a;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.RadioItem, { className: \"headermenuitem workerselectoption\" +\n (workersstate[workerid].active\n ? \" active\"\n : \" inactive\") +\n \" headermenuitem\", key: workerid, value: workerid, disabled: workerid === ((_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.uuid) }, workersstate[workerid].name || workerid));\n })))))),\n fnrf_zst.worker && fnrf_zst.worker.is_open && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n fnrf_zst.workermanager && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", 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\")),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: function () {\n if (!fnrf_zst.worker)\n return;\n fnrf_zst.worker.stop();\n } }, \"Stop\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: exportWorker }, \"Export\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: updateWorker }, \"Update\"))),\n fnrf_zst.options.useWorkerManager && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: function () { return setNewWorkerDialogOpen(true); } }, \"New\"))))))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(NewWorkerDialog, { open: isNewWorkerDialogOpen, setOpen: setNewWorkerDialogOpen })));\n};\nvar NodeSpaceMenu = function () {\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\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 return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Root, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Trigger, { asChild: true },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"styledbtn\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_material_Stack__WEBPACK_IMPORTED_MODULE_6__[\"default\"], { direction: \"row\", spacing: 1 },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_material_Typography__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, \"Nodespace\"),\n \" \",\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_MenuRounded__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null)))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Portal, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Content, { className: \"headermenucontent\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Group, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: onNew }, \"New\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: onSave }, \"Save\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: onOpen }, \"Load\")))))));\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 var workerstate = fnrf_zst.workerstate();\n // pserudouse headerprops\n if (Object.keys(headerprops).length > 0) {\n fnrf_zst.logger.debug(\"headerprops\", headerprops);\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 react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(WorkerMenu, null)),\n fnrf_zst.worker && workerstate.is_open && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(NodeSpaceMenu, null)))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FuncnodesHeader);\n\n\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/header/index.tsx?");
|
|
2629
|
+
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 */ \"react\");\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\");\n/* harmony import */ var _radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-dropdown-menu */ \"../node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs\");\n/* harmony import */ var _mui_icons_material_MenuRounded__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/icons-material/MenuRounded */ \"../node_modules/@mui/icons-material/MenuRounded.js\");\n/* harmony import */ var _mui_material_Typography__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material/Typography */ \"../node_modules/@mui/material/Typography/Typography.js\");\n/* harmony import */ var _mui_material_Stack__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material/Stack */ \"../node_modules/@mui/material/Stack/Stack.js\");\n/* harmony import */ var _mui_icons_material_ChevronRight__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/icons-material/ChevronRight */ \"../node_modules/@mui/icons-material/ChevronRight.js\");\n/* harmony import */ var _utils_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/data */ \"./src/utils/data.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};\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\n\nvar NewWorkerDialog = function (_a) {\n var trigger = _a.trigger, setOpen = _a.setOpen, open = _a.open;\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 // const workersstate = fnrf_zst.workers();\n // const [reference, setReference] = useState<{ name: string; uuid: string }>({\n // name: \"None\",\n // uuid: \"\",\n // });\n if (!fnrf_zst.options.useWorkerManager)\n return null;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_dialog__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { setOpen: setOpen, open: open, trigger: trigger, title: \"New Worker\", description: \"Create a new worker\" },\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, 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 setOpen(false);\n } }, \"Create\"))))));\n};\nvar ExportWorkerDialog = function (_a) {\n var _b, _c;\n var trigger = _a.trigger, setOpen = _a.setOpen, open = _a.open;\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), withFiles = _d[0], setWithFiles = _d[1];\n var workersstate = fnrf_zst.workers();\n var workerid = (_b = fnrf_zst.worker) === null || _b === void 0 ? void 0 : _b.uuid;\n var name = (workerid ? (_c = workersstate[workerid]) === null || _c === void 0 ? void 0 : _c.name : undefined) ||\n workerid ||\n \"worker\";\n var exportWorker = function () { return __awaiter(void 0, void 0, void 0, function () {\n var data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!fnrf_zst.worker)\n return [2 /*return*/];\n return [4 /*yield*/, fnrf_zst.worker.export({ withFiles: withFiles })];\n case 1:\n data = _a.sent();\n (0,_utils_data__WEBPACK_IMPORTED_MODULE_4__.downloadBase64)(data, name + \".fnw\", \"application/zip\");\n setOpen(false);\n return [2 /*return*/];\n }\n });\n }); };\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_dialog__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { setOpen: setOpen, open: open, trigger: trigger, title: \"Export Worker\", description: \"Export the worker as a .fnw file\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"checkbox\", className: \"styledcheckbox\", checked: withFiles, onChange: function (e) {\n setWithFiles(e.currentTarget.checked);\n } }),\n \"Include Files\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"styledbtn\", onClick: exportWorker }, \"Export\"))));\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 WorkerMenu = function () {\n var _a;\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 _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isNewWorkerDialogOpen = _b[0], setNewWorkerDialogOpen = _b[1];\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isExportWorkerDialogOpen = _c[0], setExportWorkerDialogOpen = _c[1];\n var workerselectchange = function (workerid) {\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 var updateWorker = function () { return __awaiter(void 0, void 0, void 0, function () {\n var ans, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!fnrf_zst.worker)\n return [2 /*return*/];\n ans = window.confirm(\"Updateing the worker might replace the current nodespace, continue?\");\n if (!ans)\n return [2 /*return*/];\n return [4 /*yield*/, (0,_utils_data__WEBPACK_IMPORTED_MODULE_4__.fileDialogToBase64)(\".fnw\")];\n case 1:\n data = _a.sent();\n fnrf_zst.worker.update_from_export(data);\n return [2 /*return*/];\n }\n });\n }); };\n var has_worker_manager = fnrf_zst.options.useWorkerManager && fnrf_zst.workermanager;\n var show_select = has_worker_manager && Object.keys(workersstate).length > 0;\n var has_worker = fnrf_zst.worker && fnrf_zst.worker.is_open;\n var worker_restartable = has_worker && has_worker_manager;\n var show = has_worker_manager || has_worker;\n if (!show)\n return null;\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(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Root, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Trigger, { asChild: true },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"styledbtn\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_material_Stack__WEBPACK_IMPORTED_MODULE_6__[\"default\"], { direction: \"row\", spacing: 1 },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_material_Typography__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, \"Worker\"),\n \" \",\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_MenuRounded__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null)))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Portal, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Content, { className: \"headermenucontent\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Group, null,\n show_select && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Sub, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.SubTrigger, { className: \"headermenuitem submenuitem\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_material_Stack__WEBPACK_IMPORTED_MODULE_6__[\"default\"], { direction: \"row\", spacing: 1 },\n \"Select\",\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_ChevronRight__WEBPACK_IMPORTED_MODULE_9__[\"default\"], null))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Portal, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.SubContent, { className: \"headermenucontent\", sideOffset: 2, alignOffset: -5 },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.RadioGroup, { value: (_a = fnrf_zst.worker) === null || _a === void 0 ? void 0 : _a.uuid, onValueChange: function (value) {\n workerselectchange(value);\n } }, Object.keys(workersstate)\n .sort(function (a, b) {\n // First, sort by active status (active workers come first)\n if (workersstate[a].active &&\n !workersstate[b].active)\n return -1;\n if (!workersstate[a].active &&\n workersstate[b].active)\n return 1;\n // If both are active or both are inactive, sort by name or ID\n var nameA = workersstate[a].name || a;\n var nameB = workersstate[b].name || b;\n return nameA.localeCompare(nameB);\n })\n .map(function (workerid) {\n var _a, _b, _c;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.RadioItem, { className: \"headermenuitem workerselectoption\" +\n (((_a = workersstate[workerid]) === null || _a === void 0 ? void 0 : _a.active)\n ? \" active\"\n : \" inactive\") +\n \" headermenuitem\", key: workerid, value: workerid, disabled: workerid === ((_b = fnrf_zst.worker) === null || _b === void 0 ? void 0 : _b.uuid) }, ((_c = workersstate[workerid]) === null || _c === void 0 ? void 0 : _c.name) || workerid));\n })))))),\n has_worker && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n worker_restartable && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", 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\")),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: function () {\n if (!fnrf_zst.worker)\n return;\n fnrf_zst.worker.stop();\n } }, \"Stop\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", \n //onClick={exportWorker}\n onClick: function () { return setExportWorkerDialogOpen(true); } }, \"Export\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: updateWorker }, \"Update\"))),\n has_worker_manager && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: function () { return setNewWorkerDialogOpen(true); } }, \"New\"))))))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(NewWorkerDialog, { open: isNewWorkerDialogOpen, setOpen: setNewWorkerDialogOpen }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ExportWorkerDialog, { open: isExportWorkerDialogOpen, setOpen: setExportWorkerDialogOpen })));\n};\nvar NodeSpaceMenu = function () {\n var fnrf_zst = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_funcnodesreactflow__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext);\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 return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Root, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Trigger, { asChild: true },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"styledbtn\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_material_Stack__WEBPACK_IMPORTED_MODULE_6__[\"default\"], { direction: \"row\", spacing: 1 },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_material_Typography__WEBPACK_IMPORTED_MODULE_7__[\"default\"], null, \"Nodespace\"),\n \" \",\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_MenuRounded__WEBPACK_IMPORTED_MODULE_8__[\"default\"], null)))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Portal, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Content, { className: \"headermenucontent\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Group, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: onNew }, \"New\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: onSave }, \"Save\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_dropdown_menu__WEBPACK_IMPORTED_MODULE_5__.Item, { className: \"headermenuitem\", onClick: onOpen }, \"Load\")))))));\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 var workerstate = fnrf_zst.workerstate();\n // pserudouse headerprops\n if (Object.keys(headerprops).length > 0) {\n fnrf_zst.logger.debug(\"headerprops\", headerprops);\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 react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(WorkerMenu, null)),\n fnrf_zst.worker && workerstate.is_open && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"headerelement\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(NodeSpaceMenu, null)))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FuncnodesHeader);\n\n\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/header/index.tsx?");
|
|
2630
2630
|
|
|
2631
2631
|
/***/ }),
|
|
2632
2632
|
|
|
@@ -2646,7 +2646,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2646
2646
|
\******************************/
|
|
2647
2647
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2648
2648
|
|
|
2649
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LibraryItem: () => (/* binding */ LibraryShelf),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react_markdown__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-markdown */ \"../node_modules/react-markdown/lib/index.js\");\n/* harmony import */ var remark_gfm__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! remark-gfm */ \"../node_modules/remark-gfm/lib/index.js\");\n/* harmony import */ var _lib_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib.scss */ \"./src/frontend/lib.scss\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ \"./src/frontend/index.tsx\");\n/* harmony import */ var _mui_icons_material_Search__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/icons-material/Search */ \"../node_modules/@mui/icons-material/Search.js\");\n/* harmony import */ var _mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/icons-material/Close */ \"../node_modules/@mui/icons-material/Close.js\");\n/* harmony import */ var _mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/icons-material/ExpandLess */ \"../node_modules/@mui/icons-material/ExpandLess.js\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dialog */ \"./src/frontend/dialog.tsx\");\n\n\n\n\n\n\n\n\n\nvar LibraryNode = function (_a) {\n var item = _a.item;\n var zustand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index__WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var add_to_flow = function () {\n var _a;\n (_a = zustand.worker) === null || _a === void 0 ? void 0 : _a.add_node(item.node_id);\n };\n var nodeclick = function (event) {\n // if double click, add node to graph\n if (event.detail === 2) {\n add_to_flow();\n }\n };\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodeentry\", onClick: nodeclick, title: item.description }, item.node_name || item.node_id));\n};\nvar filterShelf = function (shelf, filter) {\n var _a, _b, _c, _d;\n var hasFilteredNodes = (_b = (_a = shelf.nodes) === null || _a === void 0 ? void 0 : _a.some(function (node) {\n return node.node_id.toLowerCase().includes(filter.toLowerCase());\n })) !== null && _b !== void 0 ? _b : false;\n var hasFilteredSubShelves = (_d = (_c = shelf.subshelves) === null || _c === void 0 ? void 0 : _c.some(function (subShelf) { return filterShelf(subShelf, filter); })) !== null && _d !== void 0 ? _d : false;\n return hasFilteredNodes || hasFilteredSubShelves;\n};\nvar LibraryShelf = function (_a) {\n var _b;\n var item = _a.item, filter = _a.filter;\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isOpen = _c[0], setIsOpen = _c[1];\n var handleToggle = function () { return setIsOpen(!isOpen); };\n var filterednodes = (_b = item.nodes) === null || _b === void 0 ? void 0 : _b.filter(function (node) {\n return node.node_id.toLowerCase().includes(filter.toLowerCase());\n });\n var _isopen = isOpen || filter.length > 0;\n if (!filterShelf(item, filter)) {\n return react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null);\n }\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelfcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle\", onClick: handleToggle, style: { cursor: \"pointer\" }, title: item.description },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle_text\" }, item.name),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"expandicon \" + (_isopen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer \" + (_isopen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer_inner\" },\n filterednodes && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null, filterednodes.map(function (subItem, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibraryNode, { key: idx, item: subItem })); }))),\n item.subshelves && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null, item.subshelves.map(function (subItem, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibraryShelf, { key: idx, item: subItem, filter: filter })); }))))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", null)));\n};\nvar LibFilter = function (_a) {\n // input with left icon\n var filter = _a.filter, setFilter = _a.setFilter;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libfilter\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_Search__WEBPACK_IMPORTED_MODULE_5__[\"default\"], { fontSize: \"inherit\" }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"text\", placeholder: \"Filter\", value: filter, onChange: function (e) {\n setFilter(e.target.value);\n } }),\n filter && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_6__[\"default\"], { fontSize: \"inherit\", onClick: function () {\n setFilter(\"\");\n } }))));\n};\nvar ActiveModule = function (_a) {\n var availableModule = _a.availableModule, on_remove = _a.on_remove;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"addable-module\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-name\" }, availableModule[\"name\"]),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-links\" },\n availableModule.homepage && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"a\", { href: availableModule[\"homepage\"], target: \"_blank\", rel: \"noopener noreferrer\" }, \"Homepage\"))),\n availableModule.source && availableModule.homepage && \" | \",\n availableModule.source && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"a\", { href: availableModule[\"source\"], target: \"_blank\", rel: \"noopener noreferrer\" }, \"Source\")))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-description\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react_markdown__WEBPACK_IMPORTED_MODULE_7__.Markdown, { remarkPlugins: [remark_gfm__WEBPACK_IMPORTED_MODULE_8__[\"default\"]] }, availableModule[\"description\"].replace(/\\\\n/g, \" \\n\"))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"remove-button\", onClick: function () {\n on_remove(availableModule);\n } }, \"Remove\")));\n};\nvar AddableModule = function (_a) {\n var availableModule = _a.availableModule, on_add = _a.on_add;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), expandedDescription = _b[0], setExpandedDescription = _b[1];\n var toggleDescription = function () { return setExpandedDescription(!expandedDescription); };\n var maxDescriptionLength = 150; // Max character length before truncating the description.\n var truncatedDescription = availableModule[\"description\"].length > maxDescriptionLength\n ? availableModule[\"description\"].substring(0, maxDescriptionLength) +\n \"...\"\n : availableModule[\"description\"];\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"addable-module\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-name\" }, availableModule[\"name\"]),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-links\" },\n availableModule.homepage && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"a\", { href: availableModule[\"homepage\"], target: \"_blank\", rel: \"noopener noreferrer\" }, \"Homepage\"))),\n availableModule.source && availableModule.homepage && \" | \",\n availableModule.source && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"a\", { href: availableModule[\"source\"], target: \"_blank\", rel: \"noopener noreferrer\" }, \"Source\")))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-description\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react_markdown__WEBPACK_IMPORTED_MODULE_7__.Markdown, { remarkPlugins: [remark_gfm__WEBPACK_IMPORTED_MODULE_8__[\"default\"]] }, expandedDescription\n ? availableModule[\"description\"].replace(/\\\\n/g, \" \\n\")\n : truncatedDescription.replace(/\\\\n/g, \" \\n\")),\n availableModule[\"description\"].length > maxDescriptionLength && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { onClick: toggleDescription, className: \"toggle-description\" }, expandedDescription ? \"Show less\" : \"Show more\"))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"add-button\", onClick: function () {\n on_add(availableModule);\n } }, \"Add\")));\n};\nvar AddLibraryOverLay = function (_a) {\n var children = _a.children;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"), newlib = _b[0], setNewLib = _b[1];\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"), filter = _c[0], setFilter = _c[1]; // State for the filter input\n var zustand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index__WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n installed: [],\n available: [],\n active: [],\n }), availableModules = _d[0], SetAvailableModules = _d[1];\n var _e = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isDialogOpen = _e[0], setIsDialogOpen = _e[1];\n var update_modules = function (open) {\n if (!open)\n return;\n if (zustand.worker === undefined) {\n return;\n }\n zustand.worker.get_available_modules().then(function (modules) {\n SetAvailableModules(modules);\n });\n };\n if (!zustand.worker) {\n return react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null);\n }\n var add_new_lib = function () {\n if (zustand.worker === undefined) {\n return;\n }\n zustand.worker.add_lib(newlib);\n setNewLib(\"\");\n };\n var add_new_lib_from_installed = function (module) {\n setIsDialogOpen(false);\n if (zustand.worker === undefined) {\n return;\n }\n zustand.worker.add_lib(module.name); // use name as module name\n };\n var add_new_lib_from_installable = function (module) {\n setIsDialogOpen(false);\n if (zustand.worker === undefined) {\n return;\n }\n zustand.worker.add_lib(module.name); // use name as module name\n };\n var remove_lib_from_active = function (module) {\n setIsDialogOpen(false);\n if (zustand.worker === undefined) {\n return;\n }\n zustand.worker.remove_lib(module.name);\n };\n // Filter the modules based on the search term, ignoring case\n var filterModules = function (modules) {\n return modules.filter(function (module) {\n return module.name.toLowerCase().includes(filter.toLowerCase()) ||\n module.description.toLowerCase().includes(filter.toLowerCase());\n });\n };\n var availableModulesFiltered = filterModules(availableModules.available);\n var installedModulesFiltered = filterModules(availableModules.installed);\n var activeModulesFiltered = filterModules(availableModules.active);\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_dialog__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { title: \"Manage Library\", trigger: children, description: \"Add or remove libraries to the current worker.\", onOpenChange: update_modules, open: isDialogOpen, setOpen: setIsDialogOpen, buttons: [\n {\n text: \"add\",\n onClick: add_new_lib,\n close: true,\n },\n ] },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { className: \"filter-input styledinput\", type: \"text\", placeholder: \"Filter modules...\", value: filter, onChange: function (e) { return setFilter(e.target.value); } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"packagelist\", style: { maxHeight: \"70%\", overflow: \"auto\" } },\n installedModulesFiltered.length > 0 && react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"h3\", null, \"Installed\"),\n installedModulesFiltered.map(function (item, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(AddableModule, { key: idx, availableModule: item, on_add: add_new_lib_from_installed })); }),\n availableModulesFiltered.length > 0 && react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"h3\", null, \"Available\"),\n availableModulesFiltered.map(function (item, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(AddableModule, { key: idx, availableModule: item, on_add: add_new_lib_from_installable })); }),\n activeModulesFiltered.length > 0 && react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"h3\", null, \"Active\"),\n activeModulesFiltered.map(function (item, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ActiveModule, { key: idx, availableModule: item, on_remove: remove_lib_from_active })); })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { className: \"styledinput\", type: \"text\", value: newlib, onChange: function (e) {\n setNewLib(e.target.value);\n } })));\n};\nvar ExternalWorkerInstanceSettings = function (_a) {\n var ins = _a.ins;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(ins.name), tempName = _b[0], setTempName = _b[1];\n var fnrz = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index__WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var stop_instance = function () {\n if (!fnrz.worker)\n return;\n fnrz.worker.remove_external_worker(ins.uuid, ins.nodeclassid);\n };\n var save_instance = function () {\n if (!fnrz.worker)\n return;\n fnrz.worker.update_external_worker(ins.uuid, ins.nodeclassid, {\n name: tempName,\n });\n ins.name = tempName;\n };\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(_dialog__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { title: ins.name, description: \"Settings for\" + ins.name, trigger: react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null, \"Settings\"), buttons: [\n {\n text: \"Save\",\n onClick: save_instance,\n close: true,\n },\n {\n text: \"Delete\",\n onClick: stop_instance,\n close: true,\n },\n ] },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", { htmlFor: \"name\" }, \"Name: \"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"text\", name: \"name\", value: tempName, onChange: function (e) { return setTempName(e.target.value); }, className: \"styledinput\" }))))));\n};\nvar ExternalWorkerInstanceEntry = function (_a) {\n var _b;\n var ins = _a.ins, lib = _a.lib, _c = _a.filter, filter = _c === void 0 ? \"\" : _c;\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isOpen = _d[0], setIsOpen = _d[1];\n var handleToggle = function () { return setIsOpen(!isOpen); };\n var filterednodes = (_b = lib === null || lib === void 0 ? void 0 : lib.nodes) === null || _b === void 0 ? void 0 : _b.filter(function (node) {\n return node.node_id.toLowerCase().includes(filter.toLowerCase());\n });\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelfcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle\", onClick: handleToggle, style: { cursor: \"pointer\" }, title: ins.name },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle_text\" }, ins.name),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"expandicon \" + (isOpen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer \" + (isOpen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer_inner\" }, isOpen && (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: \"libnodeentry\", title: ins.uuid },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ExternalWorkerInstanceSettings, { ins: ins })),\n lib && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n filterednodes && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null, filterednodes.map(function (subItem, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibraryNode, { key: idx, item: subItem })); }))),\n lib.subshelves.map(function (subItem, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibraryShelf, { key: idx, item: subItem, filter: filter })); })))))))));\n};\nvar ExternalWorkerClassEntry = function (_a) {\n var item = _a.item, mod = _a.mod, lib = _a.lib;\n var zustand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index__WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isOpen = _b[0], setIsOpen = _b[1];\n var handleToggle = function () { return setIsOpen(!isOpen); };\n var add_to_flow = function () {\n var _a;\n (_a = zustand.worker) === null || _a === void 0 ? void 0 : _a.add_external_worker({\n module: mod,\n cls_module: item.module,\n cls_name: item.class_name,\n });\n };\n var click_new_instance = function (event) {\n // if double click, add node to graph\n if (event.detail === 2) {\n add_to_flow();\n }\n };\n var title = item.name || item.module + \".\" + item.class_name;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelfcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle\", onClick: handleToggle, style: { cursor: \"pointer\" }, title: title },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle_text\" }, title),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"expandicon \" + (isOpen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer \" + (isOpen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer_inner\" }, isOpen && (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: \"libnodeentry\", onClick: click_new_instance, title: item.name }, \"New Instance\"),\n item.instances.map(function (instance, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ExternalWorkerInstanceEntry, { key: idx, ins: instance, lib: lib === null || lib === void 0 ? void 0 : lib.subshelves.find(function (shelf) { return shelf.name === instance.uuid; }) })); })))))));\n};\nvar ExternalWorkerShelf = function (_a) {\n var externalworkermod = _a.externalworkermod, lib = _a.lib;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isOpen = _b[0], setIsOpen = _b[1];\n var handleToggle = function () { return setIsOpen(!isOpen); };\n var _isopen = isOpen;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelfcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle\", onClick: handleToggle, style: { cursor: \"pointer\" }, title: externalworkermod.module },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle_text\" }, externalworkermod.module),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"expandicon \" + (_isopen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer \" + (_isopen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer_inner\" }, externalworkermod.worker_classes.map(function (subItem, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ExternalWorkerClassEntry, { key: idx, item: subItem, mod: externalworkermod.module, lib: lib })); }))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", null)));\n};\nvar Library = function () {\n var _a;\n var zustand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index__WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var libstate = zustand.lib.libstate();\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"), filter = _b[0], setFilter = _b[1];\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"library\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libtitle\" }, \"Lib\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", { className: \"hr_prominent\" }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibFilter, { filter: filter, setFilter: setFilter }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"vscrollcontainer\" }, libstate.lib.shelves.map(function (item, idx) {\n return item.name == \"_external_worker\" ? (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null)) : (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibraryShelf, { key: idx, item: item, filter: filter }));\n })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", null),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libtitle\" }, \"External Worker\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", { className: \"hr_prominent\" }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"vscrollcontainer\" }, (_a = libstate.external_worker) === null || _a === void 0 ? void 0 : _a.map(function (item, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ExternalWorkerShelf, { key: idx, externalworkermod: item, lib: libstate.lib.shelves.find(function (shelf) { return shelf.name === \"_external_worker\"; }) })); })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", null)),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { style: { paddingTop: \"0.5rem\" } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"addlib\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(AddLibraryOverLay, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { disabled: zustand.worker === undefined }, \"Manage Libaries\")))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Library);\n\n\n\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/lib.tsx?");
|
|
2649
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LibraryItem: () => (/* binding */ LibraryShelf),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react_markdown__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-markdown */ \"../node_modules/react-markdown/lib/index.js\");\n/* harmony import */ var remark_gfm__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! remark-gfm */ \"../node_modules/remark-gfm/lib/index.js\");\n/* harmony import */ var _lib_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib.scss */ \"./src/frontend/lib.scss\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ \"./src/frontend/index.tsx\");\n/* harmony import */ var _mui_icons_material_Search__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/icons-material/Search */ \"../node_modules/@mui/icons-material/Search.js\");\n/* harmony import */ var _mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/icons-material/Close */ \"../node_modules/@mui/icons-material/Close.js\");\n/* harmony import */ var _mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/icons-material/ExpandLess */ \"../node_modules/@mui/icons-material/ExpandLess.js\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dialog */ \"./src/frontend/dialog.tsx\");\n\n\n\n\n\n\n\n\n\nvar LibraryNode = function (_a) {\n var item = _a.item;\n var zustand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index__WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var add_to_flow = function () {\n var _a;\n (_a = zustand.worker) === null || _a === void 0 ? void 0 : _a.add_node(item.node_id);\n };\n var nodeclick = function (event) {\n // if double click, add node to graph\n if (event.detail === 2) {\n add_to_flow();\n }\n };\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodeentry\", onClick: nodeclick, title: item.description }, item.node_name || item.node_id));\n};\nvar filterShelf = function (shelf, filter) {\n var _a, _b, _c, _d;\n var hasFilteredNodes = (_b = (_a = shelf.nodes) === null || _a === void 0 ? void 0 : _a.some(function (node) {\n return node.node_id.toLowerCase().includes(filter.toLowerCase());\n })) !== null && _b !== void 0 ? _b : false;\n var hasFilteredSubShelves = (_d = (_c = shelf.subshelves) === null || _c === void 0 ? void 0 : _c.some(function (subShelf) { return filterShelf(subShelf, filter); })) !== null && _d !== void 0 ? _d : false;\n return hasFilteredNodes || hasFilteredSubShelves;\n};\nvar LibraryShelf = function (_a) {\n var _b;\n var item = _a.item, filter = _a.filter;\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isOpen = _c[0], setIsOpen = _c[1];\n var handleToggle = function () { return setIsOpen(!isOpen); };\n var filterednodes = (_b = item.nodes) === null || _b === void 0 ? void 0 : _b.filter(function (node) {\n return node.node_id.toLowerCase().includes(filter.toLowerCase());\n });\n var _isopen = isOpen || filter.length > 0;\n if (!filterShelf(item, filter)) {\n return react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null);\n }\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelfcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle\", onClick: handleToggle, style: { cursor: \"pointer\" }, title: item.description },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle_text\" }, item.name),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"expandicon \" + (_isopen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer \" + (_isopen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer_inner\" },\n filterednodes && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null, filterednodes.map(function (subItem, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibraryNode, { key: idx, item: subItem })); }))),\n item.subshelves && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null, item.subshelves.map(function (subItem, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibraryShelf, { key: idx, item: subItem, filter: filter })); }))))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", null)));\n};\nvar LibFilter = function (_a) {\n // input with left icon\n var filter = _a.filter, setFilter = _a.setFilter;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libfilter\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_Search__WEBPACK_IMPORTED_MODULE_5__[\"default\"], { fontSize: \"inherit\" }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"text\", placeholder: \"Filter\", value: filter, onChange: function (e) {\n setFilter(e.target.value);\n } }),\n filter && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_6__[\"default\"], { fontSize: \"inherit\", onClick: function () {\n setFilter(\"\");\n } }))));\n};\nvar _ModuleLinks = function (_a) {\n var availableModule = _a.availableModule;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-links\" },\n availableModule.homepage && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"a\", { href: availableModule[\"homepage\"], target: \"_blank\", rel: \"noopener noreferrer\" }, \"Homepage\"))),\n availableModule.source && availableModule.homepage && \" | \",\n availableModule.source && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"a\", { href: availableModule[\"source\"], target: \"_blank\", rel: \"noopener noreferrer\" }, \"Source\")))));\n};\nvar _ModuleDescription = function (_a) {\n var availableModule = _a.availableModule;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), expandedDescription = _b[0], setExpandedDescription = _b[1];\n var toggleDescription = function () { return setExpandedDescription(!expandedDescription); };\n var maxDescriptionLength = 150; // Max character length before truncating the description.\n var truncatedDescription = availableModule[\"description\"].length > maxDescriptionLength\n ? availableModule[\"description\"].substring(0, maxDescriptionLength) +\n \"...\"\n : availableModule[\"description\"];\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-description\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react_markdown__WEBPACK_IMPORTED_MODULE_7__.Markdown, { remarkPlugins: [remark_gfm__WEBPACK_IMPORTED_MODULE_8__[\"default\"]] }, expandedDescription\n ? availableModule[\"description\"].replace(/\\\\n/g, \" \\n\")\n : truncatedDescription.replace(/\\\\n/g, \" \\n\")),\n availableModule[\"description\"].length > maxDescriptionLength && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { onClick: toggleDescription, className: \"toggle-description\" }, expandedDescription ? \"Show less\" : \"Show more\"))));\n};\nvar _VersionSelector = function (_a) {\n var availableModule = _a.availableModule, on_change = _a.on_change;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(availableModule.version || \"latest\"), selectedRelease = _b[0], setSelectedRelease = _b[1];\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\">=\"), selectedRestriction = _c[0], setSelectedRestriction = _c[1];\n var updateSelectedRelease = function (e) {\n var version = e.target.value;\n setSelectedRelease(version);\n if (version !== \"latest\")\n on_change(selectedRestriction + version);\n else\n on_change(version);\n };\n var updateSelectedRestriction = function (e) {\n setSelectedRestriction(e.target.value);\n if (selectedRelease !== \"latest\")\n on_change(e.target.value + selectedRelease);\n };\n // if availableModule.version is set and not in availableModule.releases, add it to the beginning of the list\n if (availableModule.releases &&\n !availableModule.releases.includes(selectedRelease)) {\n availableModule.releases.unshift(selectedRelease);\n }\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(\"select\", { value: selectedRestriction, onChange: updateSelectedRestriction },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"option\", { value: \">=\" }, \">=\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"option\", { value: \"==\" }, \"==\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"option\", { value: \"<=\" }, \"<=\")),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"select\", { onChange: updateSelectedRelease, value: selectedRelease }, availableModule[\"releases\"] &&\n availableModule[\"releases\"].map(function (release) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"option\", { key: release, value: release }, release)); }))));\n};\nvar ActiveModule = function (_a) {\n var availableModule = _a.availableModule, on_remove = _a.on_remove, on_update = _a.on_update;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(availableModule.version || \"latest\"), selectedRelease = _b[0], setSelectedRelease = _b[1];\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"addable-module\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-name\" }, availableModule[\"name\"] +\n (availableModule.version ? \" (\".concat(availableModule.version, \")\") : \"\")),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_ModuleLinks, { availableModule: availableModule }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_ModuleDescription, { availableModule: availableModule }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_VersionSelector, { availableModule: availableModule, on_change: setSelectedRelease }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"update-button\", disabled: selectedRelease === availableModule.version, onClick: function () {\n on_update(availableModule, selectedRelease);\n } }, \"Update\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"remove-button\", onClick: function () {\n on_remove(availableModule);\n } }, \"Remove\"))));\n};\nvar AddableModule = function (_a) {\n var availableModule = _a.availableModule, on_add = _a.on_add;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(availableModule.version || \"latest\"), selectedRelease = _b[0], setSelectedRelease = _b[1];\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"addable-module\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-name\" }, availableModule[\"name\"] +\n (availableModule.version ? \" (\".concat(availableModule.version, \")\") : \"\")),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_ModuleLinks, { availableModule: availableModule }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_ModuleDescription, { availableModule: availableModule }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_VersionSelector, { availableModule: availableModule, on_change: setSelectedRelease }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"add-button\", onClick: function () {\n on_add(availableModule, selectedRelease);\n } }, \"Add\"))));\n};\nvar InstallableModule = function (_a) {\n var availableModule = _a.availableModule, on_add = _a.on_add;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(availableModule.version || \"latest\"), selectedRelease = _b[0], setSelectedRelease = _b[1];\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"addable-module\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"module-name\" }, availableModule[\"name\"]),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_ModuleLinks, { availableModule: availableModule }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_ModuleDescription, { availableModule: availableModule }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_VersionSelector, { availableModule: availableModule, on_change: setSelectedRelease }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { className: \"add-button\", onClick: function () {\n on_add(availableModule, selectedRelease);\n } }, \"Add\"))));\n};\nvar AddLibraryOverLay = function (_a) {\n var children = _a.children;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"), filter = _b[0], setFilter = _b[1]; // State for the filter input\n var zustand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index__WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true), activeExtended = _c[0], SetActiveExtended = _c[1];\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true), availableExtended = _d[0], SetAvailableExtended = _d[1];\n var _e = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true), installedExtended = _e[0], SetInstalledExtended = _e[1];\n var _f = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({\n installed: [],\n available: [],\n active: [],\n }), availableModules = _f[0], SetAvailableModules = _f[1];\n var _g = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isDialogOpen = _g[0], setIsDialogOpen = _g[1];\n var update_modules = function (open) {\n if (!open)\n return;\n if (zustand.worker === undefined) {\n return;\n }\n zustand.worker.get_available_modules().then(function (modules) {\n console.log(modules);\n SetAvailableModules(modules);\n });\n };\n if (!zustand.worker) {\n return react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null);\n }\n var add_new_lib_from_installed = function (module, release) {\n setIsDialogOpen(false);\n if (zustand.worker === undefined) {\n return;\n }\n zustand.worker.add_lib(module.name, release); // use name as module name\n };\n var add_new_lib_from_installable = function (module, release) {\n setIsDialogOpen(false);\n if (zustand.worker === undefined) {\n return;\n }\n zustand.worker.add_lib(module.name, release); // use name as module name\n };\n var remove_lib_from_active = function (module) {\n setIsDialogOpen(false);\n if (zustand.worker === undefined) {\n return;\n }\n zustand.worker.remove_lib(module.name);\n };\n var update_lib = function (module, release) {\n setIsDialogOpen(false);\n if (zustand.worker === undefined) {\n return;\n }\n zustand.worker.add_lib(module.name, release);\n };\n // Filter the modules based on the search term, ignoring case\n var filterModules = function (modules) {\n return modules.filter(function (module) {\n return module.name.toLowerCase().includes(filter.toLowerCase()) ||\n module.description.toLowerCase().includes(filter.toLowerCase());\n });\n };\n var availableModulesFiltered = filterModules(availableModules.available);\n var installedModulesFiltered = filterModules(availableModules.installed);\n var activeModulesFiltered = filterModules(availableModules.active);\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_dialog__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { title: \"Manage Library\", trigger: children, description: \"Add or remove libraries to the current worker.\", onOpenChange: update_modules, open: isDialogOpen, setOpen: setIsDialogOpen },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { className: \"filter-input styledinput\", type: \"text\", placeholder: \"Filter modules...\", value: filter, onChange: function (e) { return setFilter(e.target.value); } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"packagelist\", style: { maxHeight: \"70%\", overflow: \"auto\" } },\n installedModulesFiltered.length > 0 && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"h3\", { onClick: function () {\n SetInstalledExtended(!installedExtended);\n } }, \"Installed\")),\n installedExtended &&\n installedModulesFiltered.map(function (item, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(AddableModule, { key: idx, availableModule: item, on_add: add_new_lib_from_installed })); }),\n availableModulesFiltered.length > 0 && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"h3\", { onClick: function () {\n SetAvailableExtended(!availableExtended);\n } }, \"Available\")),\n availableExtended &&\n availableModulesFiltered.map(function (item, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(InstallableModule, { key: idx, availableModule: item, on_add: add_new_lib_from_installable })); }),\n activeModulesFiltered.length > 0 && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"h3\", { onClick: function () {\n SetActiveExtended(!activeExtended);\n } }, \"Active\")),\n activeExtended &&\n activeModulesFiltered.map(function (item, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ActiveModule, { key: idx, availableModule: item, on_remove: remove_lib_from_active, on_update: update_lib })); }))));\n};\nvar ExternalWorkerInstanceSettings = function (_a) {\n var ins = _a.ins;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(ins.name), tempName = _b[0], setTempName = _b[1];\n var fnrz = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index__WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var stop_instance = function () {\n if (!fnrz.worker)\n return;\n fnrz.worker.remove_external_worker(ins.uuid, ins.nodeclassid);\n };\n var save_instance = function () {\n if (!fnrz.worker)\n return;\n fnrz.worker.update_external_worker(ins.uuid, ins.nodeclassid, {\n name: tempName,\n });\n ins.name = tempName;\n };\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(_dialog__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { title: ins.name, description: \"Settings for\" + ins.name, trigger: react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null, \"Settings\"), buttons: [\n {\n text: \"Save\",\n onClick: save_instance,\n close: true,\n },\n {\n text: \"Delete\",\n onClick: stop_instance,\n close: true,\n },\n ] },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", { htmlFor: \"name\" }, \"Name: \"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"text\", name: \"name\", value: tempName, onChange: function (e) { return setTempName(e.target.value); }, className: \"styledinput\" }))))));\n};\nvar ExternalWorkerInstanceEntry = function (_a) {\n var _b;\n var ins = _a.ins, lib = _a.lib, _c = _a.filter, filter = _c === void 0 ? \"\" : _c;\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isOpen = _d[0], setIsOpen = _d[1];\n var handleToggle = function () { return setIsOpen(!isOpen); };\n var filterednodes = (_b = lib === null || lib === void 0 ? void 0 : lib.nodes) === null || _b === void 0 ? void 0 : _b.filter(function (node) {\n return node.node_id.toLowerCase().includes(filter.toLowerCase());\n });\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelfcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle\", onClick: handleToggle, style: { cursor: \"pointer\" }, title: ins.name },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle_text\" }, ins.name),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"expandicon \" + (isOpen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer \" + (isOpen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer_inner\" }, isOpen && (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: \"libnodeentry\", title: ins.uuid },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ExternalWorkerInstanceSettings, { ins: ins })),\n lib && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null,\n filterednodes && (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null, filterednodes.map(function (subItem, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibraryNode, { key: idx, item: subItem })); }))),\n lib.subshelves.map(function (subItem, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibraryShelf, { key: idx, item: subItem, filter: filter })); })))))))));\n};\nvar ExternalWorkerClassEntry = function (_a) {\n var item = _a.item, mod = _a.mod, lib = _a.lib;\n var zustand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index__WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isOpen = _b[0], setIsOpen = _b[1];\n var handleToggle = function () { return setIsOpen(!isOpen); };\n var add_to_flow = function () {\n var _a;\n (_a = zustand.worker) === null || _a === void 0 ? void 0 : _a.add_external_worker({\n module: mod,\n cls_module: item.module,\n cls_name: item.class_name,\n });\n };\n var click_new_instance = function (event) {\n // if double click, add node to graph\n if (event.detail === 2) {\n add_to_flow();\n }\n };\n var title = item.name || item.module + \".\" + item.class_name;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelfcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle\", onClick: handleToggle, style: { cursor: \"pointer\" }, title: title },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle_text\" }, title),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"expandicon \" + (isOpen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer \" + (isOpen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer_inner\" }, isOpen && (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: \"libnodeentry\", onClick: click_new_instance, title: item.name }, \"New Instance\"),\n item.instances.map(function (instance, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ExternalWorkerInstanceEntry, { key: idx, ins: instance, lib: lib === null || lib === void 0 ? void 0 : lib.subshelves.find(function (shelf) { return shelf.name === instance.uuid; }) })); })))))));\n};\nvar ExternalWorkerShelf = function (_a) {\n var externalworkermod = _a.externalworkermod, lib = _a.lib;\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), isOpen = _b[0], setIsOpen = _b[1];\n var handleToggle = function () { return setIsOpen(!isOpen); };\n var _isopen = isOpen;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelfcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle\", onClick: handleToggle, style: { cursor: \"pointer\" }, title: externalworkermod.module },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"shelftitle_text\" }, externalworkermod.module),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"expandicon \" + (_isopen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_4__[\"default\"], null))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer \" + (_isopen ? \"open\" : \"close\") },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libnodecontainer_inner\" }, externalworkermod.worker_classes.map(function (subItem, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ExternalWorkerClassEntry, { key: idx, item: subItem, mod: externalworkermod.module, lib: lib })); }))),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", null)));\n};\nvar Library = function () {\n var _a;\n var zustand = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index__WEBPACK_IMPORTED_MODULE_2__.FuncNodesContext);\n var libstate = zustand.lib.libstate();\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"\"), filter = _b[0], setFilter = _b[1];\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libcontainer\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"library\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libtitle\" }, \"Lib\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", { className: \"hr_prominent\" }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibFilter, { filter: filter, setFilter: setFilter }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"vscrollcontainer\" }, libstate.lib.shelves.map(function (item, idx) {\n return item.name == \"_external_worker\" ? (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Fragment, null)) : (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(LibraryShelf, { key: idx, item: item, filter: filter }));\n })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", null),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"libtitle\" }, \"External Worker\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", { className: \"hr_prominent\" }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"vscrollcontainer\" }, (_a = libstate.external_worker) === null || _a === void 0 ? void 0 : _a.map(function (item, idx) { return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(ExternalWorkerShelf, { key: idx, externalworkermod: item, lib: libstate.lib.shelves.find(function (shelf) { return shelf.name === \"_external_worker\"; }) })); })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"hr\", null)),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { style: { paddingTop: \"0.5rem\" } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"addlib\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(AddLibraryOverLay, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { disabled: zustand.worker === undefined }, \"Manage Libraries\")))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Library);\n\n\n\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/lib.tsx?");
|
|
2650
2650
|
|
|
2651
2651
|
/***/ }),
|
|
2652
2652
|
|
|
@@ -2676,7 +2676,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2676
2676
|
\*********************************************************/
|
|
2677
2677
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2678
2678
|
|
|
2679
|
-
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 */ \"react\");\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 first 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://@linkdlab/funcnodes_react_flow/./src/frontend/node/io/default_input_renderer.tsx?");
|
|
2679
|
+
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 */ \"react\");\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 first 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.toString(); });\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://@linkdlab/funcnodes_react_flow/./src/frontend/node/io/default_input_renderer.tsx?");
|
|
2680
2680
|
|
|
2681
2681
|
/***/ }),
|
|
2682
2682
|
|
|
@@ -2746,7 +2746,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2746
2746
|
\************************************/
|
|
2747
2747
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2748
2748
|
|
|
2749
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NodeName: () => (/* binding */ NodeName),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var _mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/icons-material/ExpandLess */ \"../node_modules/@mui/icons-material/ExpandLess.js\");\n/* harmony import */ var _mui_icons_material_Lan__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/icons-material/Lan */ \"../node_modules/@mui/icons-material/Lan.js\");\n/* harmony import */ var _mui_icons_material_PlayCircleFilled__WEBPACK_IMPORTED_MODULE_8__ = __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\");\n/* harmony import */ var _utils_progressbar__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/progressbar */ \"./src/frontend/utils/progressbar.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\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_8__[\"default\"], { fontSize: \"inherit\", className: \"triggerbutton\", onClick: clicktrigger }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_Lan__WEBPACK_IMPORTED_MODULE_9__[\"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_10__[\"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) {\n if (io.hidden)\n return null;\n return react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_io__WEBPACK_IMPORTED_MODULE_3__.NodeOutput, { key: io.id, io: io });\n }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(NodeDataRenderer, { node_data: node_data }),\n inputs.map(function (io) {\n if (io.hidden)\n return null;\n return react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_io__WEBPACK_IMPORTED_MODULE_3__.NodeInput, { key: io.id, io: io });\n })));\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 NodeProgressBar = function (_a) {\n var node_data = _a.node_data;\n if (!node_data.progress)\n return null;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_utils_progressbar__WEBPACK_IMPORTED_MODULE_7__[\"default\"], { style: {\n height: node_data.progress.prefix === \"idle\" ? \"0px\" : undefined,\n }, state: node_data.progress, className: \"nodeprogress\" }));\n};\nvar NodeFooter = function (_a) {\n var node_data = _a.node_data;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"nodefooter\" },\n node_data.error && react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"nodeerror\" }, node_data.error),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(NodeProgressBar, { node_data: node_data })));\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\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/node/node.tsx?");
|
|
2749
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NodeName: () => (/* binding */ NodeName),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var _mui_icons_material_ExpandLess__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/icons-material/ExpandLess */ \"../node_modules/@mui/icons-material/ExpandLess.js\");\n/* harmony import */ var _mui_icons_material_Lan__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/icons-material/Lan */ \"../node_modules/@mui/icons-material/Lan.js\");\n/* harmony import */ var _mui_icons_material_PlayCircleFilled__WEBPACK_IMPORTED_MODULE_8__ = __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\");\n/* harmony import */ var _utils_progressbar__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/progressbar */ \"./src/frontend/utils/progressbar.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\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\", title: node_data.description || 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_PlayCircleFilled__WEBPACK_IMPORTED_MODULE_8__[\"default\"], { fontSize: \"inherit\", className: \"triggerbutton\", onClick: clicktrigger }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_mui_icons_material_Lan__WEBPACK_IMPORTED_MODULE_9__[\"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_10__[\"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) {\n if (io.hidden)\n return null;\n return react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_io__WEBPACK_IMPORTED_MODULE_3__.NodeOutput, { key: io.id, io: io });\n }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(NodeDataRenderer, { node_data: node_data }),\n inputs.map(function (io) {\n if (io.hidden)\n return null;\n return react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_io__WEBPACK_IMPORTED_MODULE_3__.NodeInput, { key: io.id, io: io });\n })));\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 NodeProgressBar = function (_a) {\n var node_data = _a.node_data;\n if (!node_data.progress)\n return null;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_utils_progressbar__WEBPACK_IMPORTED_MODULE_7__[\"default\"], { style: {\n height: node_data.progress.prefix === \"idle\" ? \"0px\" : undefined,\n }, state: node_data.progress, className: \"nodeprogress\" }));\n};\nvar NodeFooter = function (_a) {\n var node_data = _a.node_data;\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"nodefooter\" },\n node_data.error && react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"nodeerror\" }, node_data.error),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(NodeProgressBar, { node_data: node_data })));\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\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/node/node.tsx?");
|
|
2750
2750
|
|
|
2751
2751
|
/***/ }),
|
|
2752
2752
|
|
|
@@ -2766,7 +2766,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2766
2766
|
\********************************************/
|
|
2767
2767
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2768
2768
|
|
|
2769
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HSLColorPicker: () => (/* binding */ HSLColorPicker),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-popover */ \"../node_modules/@radix-ui/react-popover/dist/index.mjs\");\n/* harmony import */ var color_convert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! color-convert */ \"../node_modules/color-convert/index.js\");\n/* harmony import */ var color_convert__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(color_convert__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _colorpicker_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./colorpicker.scss */ \"./src/frontend/utils/colorpicker.scss\");\n\n\n\n\nvar create_color_converter = function (type, data) {\n if (!Array.isArray(data))\n data = [data];\n if (data[0] === undefined || data[0] === null)\n return create_color_converter(\"rgb\", [0, 0, 0]);\n // @ts-ignore\n var source = (color_convert__WEBPACK_IMPORTED_MODULE_1___default())[type];\n if (!source)\n throw new Error(\"Unsupported color type: \" + type);\n source[type] = function () { return data; };\n var checkrgb = source.rgb(data);\n if (!Array.isArray(checkrgb))\n return create_color_converter(\"rgb\", [0, 0, 0]);\n if (checkrgb[0] === undefined || checkrgb[0] === null)\n return create_color_converter(\"rgb\", [0, 0, 0]);\n var checkhsl = source.hsl(data);\n if (!Array.isArray(checkhsl))\n return create_color_converter(\"rgb\", [0, 0, 0]);\n if (checkhsl[0] === undefined || checkhsl[0] === null)\n return create_color_converter(\"rgb\", [0, 0, 0]);\n var converter = {};\n Object.keys(source).forEach(function (key) {\n var entry = source[key];\n //check if entry is a function\n if (typeof entry === \"function\") {\n converter[key] = function () { return entry.apply(null, data); };\n }\n });\n return converter;\n};\nvar HSLColorPicker = function (_a) {\n var onChange = _a.onChange, colorconverter = _a.colorconverter, _b = _a.allow_null, allow_null = _b === void 0 ? false : _b;\n if (colorconverter === null && !allow_null)\n throw new Error(\"Color converter is null\");\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(colorconverter), converter = _c[0], setConverter = _c[1];\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([0, 0, 0]), hsl = _d[0], setHsl = _d[1];\n var _e = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([0, 0, 0]), rgb = _e[0], setRgb = _e[1];\n var _f = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([0, 0, 0]), hsv = _f[0], setHsv = _f[1];\n var _g = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"000\"), hex = _g[0], setHex = _g[1];\n // const hsl = converter.hsl() as number[];\n // const rgb = converter.rgb() as number[];\n // const hsv = converter.hsv() as number[];\n // const hex = converter.hex() as string;\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (!converter) {\n if (!allow_null)\n throw new Error(\"Color converter is null\");\n setRgb([0, 0, 0]);\n setHsl([0, 0, 0]);\n setHsv([0, 0, 0]);\n setHex(\"\");\n return;\n }\n setHsl(converter.hsl());\n setRgb(converter.rgb());\n setHsv(converter.hsv());\n setHex(converter.hex());\n }, [converter]);\n var colorStyle = {\n backgroundColor: \"hsl(\".concat(hsl[0], \", \").concat(hsl[1], \"%, \").concat(hsl[2], \"%)\"),\n padding: \"10px\",\n margin: \"10px 0\",\n };\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { style: { backgroundColor: \"white\" } },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { style: colorStyle }, \"Color Preview\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace_title\" }, \"RGB\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Red\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"255\", value: rgb[0], onChange: function (e) {\n var newrgb = [parseInt(e.target.value), rgb[1], rgb[2]];\n var newconverter = create_color_converter(\"rgb\", newrgb);\n setConverter(newconverter);\n onChange(newconverter);\n }, style: { background: \"linear-gradient(to right, #000, #f00)\" } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Green\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"255\", value: rgb[1], onChange: function (e) {\n var newrgb = [rgb[0], parseInt(e.target.value), rgb[2]];\n var newconverter = create_color_converter(\"rgb\", newrgb);\n setConverter(newconverter);\n onChange(newconverter);\n }, style: { background: \"linear-gradient(to right, #000, #0f0)\" } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Blue\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"255\", value: rgb[2], onChange: function (e) {\n var newrgb = [rgb[0], rgb[1], parseInt(e.target.value)];\n var newconverter = create_color_converter(\"rgb\", newrgb);\n setConverter(newconverter);\n onChange(newconverter);\n }, style: { background: \"linear-gradient(to right, #000, #00f)\" } })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace_title\" }, \"HSL\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Hue\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"360\", value: hsl[0], onChange: function (e) {\n var newhsl = [parseInt(e.target.value), hsl[1], hsl[2]];\n var newconverter = create_color_converter(\"hsl\", newhsl);\n setConverter(newconverter);\n onChange(newconverter);\n }, style: {\n background: \"linear-gradient(to right, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00)\",\n } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Saturation\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"100\", value: hsl[1], onChange: function (e) {\n var newhsl = [hsl[0], parseInt(e.target.value), hsl[2]];\n var newconverter = create_color_converter(\"hsl\", newhsl);\n setConverter(newconverter);\n onChange(newconverter);\n }, style: {\n background: \"linear-gradient(to right, #fff, hsl(\".concat(hsl[0], \", 100%, 50%))\"),\n } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Lightness\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"100\", value: hsl[2], onChange: function (e) {\n var newhsl = [hsl[0], hsl[1], parseInt(e.target.value)];\n var newconverter = create_color_converter(\"hsl\", newhsl);\n setConverter(newconverter);\n onChange(newconverter);\n }, style: {\n background: \"linear-gradient(to right, #000, hsl(\".concat(hsl[0], \", 100%, 50%), #fff)\"),\n } })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace_title\" }, \"HSV\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Hue\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"360\", value: hsv[0], onChange: function (e) {\n var newhsv = [parseInt(e.target.value), hsv[1], hsv[2]];\n var newconverter = create_color_converter(\"hsv\", newhsv);\n setConverter(newconverter);\n onChange(newconverter);\n }, style: {\n background: \"linear-gradient(to right, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00)\",\n } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Saturation\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"100\", value: hsv[1], onChange: function (e) {\n var newhsv = [hsv[0], parseInt(e.target.value), hsv[2]];\n var newconverter = create_color_converter(\"hsv\", newhsv);\n setConverter(newconverter);\n onChange(newconverter);\n }, style: {\n background: \"linear-gradient(to right, #fff, hsl(\".concat(hsl[0], \", 100%, 50%))\"),\n } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Value\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"100\", value: hsv[2], onChange: function (e) {\n var newhsv = [hsv[0], hsv[1], parseInt(e.target.value)];\n var newconverter = create_color_converter(\"hsv\", newhsv);\n setConverter(newconverter);\n onChange(newconverter);\n }, style: {\n background: \"linear-gradient(to right, #000, hsl(\".concat(hsl[0], \", 100%, 50%))\"),\n } })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace_title\" }, \"HEX\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"text\", value: hex, onChange: function (e) {\n var newconverter = e.target.value === \"\"\n ? null\n : create_color_converter(\"hex\", [e.target.value]);\n setConverter(newconverter);\n onChange(newconverter);\n } }))));\n};\nvar CustomColorPicker = function (_a) {\n var inicolordata = _a.inicolordata, _b = _a.inicolorspace, inicolorspace = _b === void 0 ? \"hex\" : _b, _c = _a.allow_null, allow_null = _c === void 0 ? false : _c, onChange = _a.onChange;\n if (inicolordata === undefined) {\n inicolordata = [0, 0, 0];\n inicolorspace = \"rgb\";\n }\n if (!Array.isArray(inicolordata))\n inicolordata = [inicolordata];\n var iniconverter = create_color_converter(inicolorspace, inicolordata);\n if (iniconverter.rgb() === undefined)\n iniconverter = create_color_converter(\"rgb\", [0, 0, 0]);\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(iniconverter), color = _d[0], setColor = _d[1];\n var innerSetColor = function (colorconverter) {\n if (colorconverter === null && !allow_null)\n throw new Error(\"Color is null\");\n if (colorconverter !== null)\n setColor(colorconverter);\n if (onChange)\n onChange(colorconverter);\n };\n var style = {\n background: \"#\" + color.hex(),\n borderRadius: \"0.3rem\",\n width: \"2rem\",\n height: \"1rem\",\n };\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Root, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Trigger, { asChild: true },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { style: style })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Portal, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Content, { side: \"left\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(HSLColorPicker, { onChange: innerSetColor, colorconverter: color, allow_null: allow_null })))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CustomColorPicker);\n\n\n\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/utils/colorpicker.tsx?");
|
|
2769
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HSLColorPicker: () => (/* binding */ HSLColorPicker),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var _radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-popover */ \"../node_modules/@radix-ui/react-popover/dist/index.mjs\");\n/* harmony import */ var color_convert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! color-convert */ \"../node_modules/color-convert/index.js\");\n/* harmony import */ var color_convert__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(color_convert__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _colorpicker_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./colorpicker.scss */ \"./src/frontend/utils/colorpicker.scss\");\n\n\n\n\nvar create_color_converter = function (type, data) {\n if (!Array.isArray(data))\n data = [data];\n if (data[0] === undefined || data[0] === null)\n return create_color_converter(\"rgb\", [0, 0, 0]);\n // @ts-ignore\n var source = (color_convert__WEBPACK_IMPORTED_MODULE_1___default())[type];\n if (!source)\n throw new Error(\"Unsupported color type: \" + type);\n source[type] = function () { return data; };\n var checkrgb = source.rgb(data);\n if (!Array.isArray(checkrgb))\n return create_color_converter(\"rgb\", [0, 0, 0]);\n if (checkrgb[0] === undefined || checkrgb[0] === null)\n return create_color_converter(\"rgb\", [0, 0, 0]);\n var checkhsl = source.hsl(data);\n if (!Array.isArray(checkhsl))\n return create_color_converter(\"rgb\", [0, 0, 0]);\n if (checkhsl[0] === undefined || checkhsl[0] === null)\n return create_color_converter(\"rgb\", [0, 0, 0]);\n var converter = {};\n Object.keys(source).forEach(function (key) {\n var entry = source[key];\n //check if entry is a function\n if (typeof entry === \"function\") {\n converter[key] = function () { return entry.apply(null, data); };\n }\n });\n return converter;\n};\nvar HSLColorPicker = function (_a) {\n var onChange = _a.onChange, colorconverter = _a.colorconverter, _b = _a.allow_null, allow_null = _b === void 0 ? false : _b;\n if (colorconverter === null && !allow_null)\n throw new Error(\"Color converter is null\");\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(colorconverter), converter = _c[0], setConverter = _c[1];\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([0, 0, 0]), hsl = _d[0], setHsl = _d[1];\n var _e = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([0, 0, 0]), rgb = _e[0], setRgb = _e[1];\n var _f = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([0, 0, 0]), hsv = _f[0], setHsv = _f[1];\n var _g = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(\"000\"), hex = _g[0], setHex = _g[1];\n // const hsl = converter.hsl() as number[];\n // const rgb = converter.rgb() as number[];\n // const hsv = converter.hsv() as number[];\n // const hex = converter.hex() as string;\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n if (!converter) {\n if (!allow_null)\n throw new Error(\"Color converter is null\");\n setRgb([0, 0, 0]);\n setHsl([0, 0, 0]);\n setHsv([0, 0, 0]);\n setHex(\"\");\n return;\n }\n setHsl(converter.hsl());\n setRgb(converter.rgb());\n setHsv(converter.hsv());\n setHex(converter.hex());\n }, [converter]);\n var colorStyle = {\n backgroundColor: \"hsl(\".concat(hsl[0], \", \").concat(hsl[1], \"%, \").concat(hsl[2], \"%)\"),\n padding: \"10px\",\n margin: \"10px 0\",\n };\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { style: { backgroundColor: \"white\" } },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { style: colorStyle }, \"Color Preview\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace_title\" }, \"RGB\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Red\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"255\", value: rgb[0], onChange: function (e) {\n var new_rgb = [parseInt(e.target.value), rgb[1], rgb[2]];\n var new_converter = create_color_converter(\"rgb\", new_rgb);\n setConverter(new_converter);\n onChange(new_converter);\n }, style: { background: \"linear-gradient(to right, #000, #f00)\" } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Green\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"255\", value: rgb[1], onChange: function (e) {\n var new_rgb = [rgb[0], parseInt(e.target.value), rgb[2]];\n var new_converter = create_color_converter(\"rgb\", new_rgb);\n setConverter(new_converter);\n onChange(new_converter);\n }, style: { background: \"linear-gradient(to right, #000, #0f0)\" } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Blue\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"255\", value: rgb[2], onChange: function (e) {\n var new_rgb = [rgb[0], rgb[1], parseInt(e.target.value)];\n var new_converter = create_color_converter(\"rgb\", new_rgb);\n setConverter(new_converter);\n onChange(new_converter);\n }, style: { background: \"linear-gradient(to right, #000, #00f)\" } })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace_title\" }, \"HSL\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Hue\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"360\", value: hsl[0], onChange: function (e) {\n var new_hsl = [parseInt(e.target.value), hsl[1], hsl[2]];\n var new_converter = create_color_converter(\"hsl\", new_hsl);\n setConverter(new_converter);\n onChange(new_converter);\n }, style: {\n background: \"linear-gradient(to right, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00)\",\n } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Saturation\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"100\", value: hsl[1], onChange: function (e) {\n var new_hsl = [hsl[0], parseInt(e.target.value), hsl[2]];\n var new_converter = create_color_converter(\"hsl\", new_hsl);\n setConverter(new_converter);\n onChange(new_converter);\n }, style: {\n background: \"linear-gradient(to right, #fff, hsl(\".concat(hsl[0], \", 100%, 50%))\"),\n } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Lightness\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"100\", value: hsl[2], onChange: function (e) {\n var new_hsl = [hsl[0], hsl[1], parseInt(e.target.value)];\n var new_converter = create_color_converter(\"hsl\", new_hsl);\n setConverter(new_converter);\n onChange(new_converter);\n }, style: {\n background: \"linear-gradient(to right, #000, hsl(\".concat(hsl[0], \", 100%, 50%), #fff)\"),\n } })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace_title\" }, \"HSV\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Hue\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"360\", value: hsv[0], onChange: function (e) {\n var new_hsv = [parseInt(e.target.value), hsv[1], hsv[2]];\n var new_converter = create_color_converter(\"hsv\", new_hsv);\n setConverter(new_converter);\n onChange(new_converter);\n }, style: {\n background: \"linear-gradient(to right, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00)\",\n } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Saturation\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"100\", value: hsv[1], onChange: function (e) {\n var new_hsv = [hsv[0], parseInt(e.target.value), hsv[2]];\n var new_converter = create_color_converter(\"hsv\", new_hsv);\n setConverter(new_converter);\n onChange(new_converter);\n }, style: {\n background: \"linear-gradient(to right, #fff, hsl(\".concat(hsl[0], \", 100%, 50%))\"),\n } }),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"label\", null, \"Value\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"range\", min: \"0\", max: \"100\", value: hsv[2], onChange: function (e) {\n var new_hsv = [hsv[0], hsv[1], parseInt(e.target.value)];\n var new_converter = create_color_converter(\"hsv\", new_hsv);\n setConverter(new_converter);\n onChange(new_converter);\n }, style: {\n background: \"linear-gradient(to right, #000, hsl(\".concat(hsl[0], \", 100%, 50%))\"),\n } })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"colorspace_title\" }, \"HEX\"),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", null),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"input\", { type: \"text\", value: hex, onChange: function (e) {\n var new_converter = e.target.value === \"\"\n ? null\n : create_color_converter(\"hex\", [e.target.value]);\n setConverter(new_converter);\n onChange(new_converter);\n } }))));\n};\nvar CustomColorPicker = function (_a) {\n var inicolordata = _a.inicolordata, _b = _a.inicolorspace, inicolorspace = _b === void 0 ? \"hex\" : _b, _c = _a.allow_null, allow_null = _c === void 0 ? false : _c, onChange = _a.onChange;\n if (inicolordata === undefined) {\n inicolordata = [0, 0, 0];\n inicolorspace = \"rgb\";\n }\n if (!Array.isArray(inicolordata))\n inicolordata = [inicolordata];\n var iniconverter = create_color_converter(inicolorspace, inicolordata);\n if (iniconverter.rgb() === undefined)\n iniconverter = create_color_converter(\"rgb\", [0, 0, 0]);\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(iniconverter), color = _d[0], setColor = _d[1];\n var innerSetColor = function (colorconverter) {\n if (colorconverter === null && !allow_null)\n throw new Error(\"Color is null\");\n if (colorconverter !== null)\n setColor(colorconverter);\n if (onChange)\n onChange(colorconverter);\n };\n var style = {\n background: \"#\" + color.hex(),\n borderRadius: \"0.3rem\",\n width: \"2rem\",\n height: \"1rem\",\n };\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Root, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Trigger, { asChild: true },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"button\", { style: style })),\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Portal, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_radix_ui_react_popover__WEBPACK_IMPORTED_MODULE_3__.Content, { side: \"left\" },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(HSLColorPicker, { onChange: innerSetColor, colorconverter: color, allow_null: allow_null })))));\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CustomColorPicker);\n\n\n\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/frontend/utils/colorpicker.tsx?");
|
|
2770
2770
|
|
|
2771
2771
|
/***/ }),
|
|
2772
2772
|
|
|
@@ -2816,7 +2816,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2816
2816
|
\******************************************/
|
|
2817
2817
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2818
2818
|
|
|
2819
|
-
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_3__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_2__ = __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/* 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\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.state = (0,zustand__WEBPACK_IMPORTED_MODULE_2__.create)(function (_set, _get) { return ({\n is_open: true,\n }); });\n if (data.zustand)\n this.set_zustand(data.zustand);\n if (data.on_sync_complete) {\n this.on_sync_complete = data.on_sync_complete;\n }\n else {\n this.on_sync_complete = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2 /*return*/];\n }); }); };\n }\n }\n FuncNodesWorker.prototype.set_zustand = function (zustand) {\n if (zustand === this._zustand)\n return;\n this._zustand = zustand;\n zustand.set_worker(this);\n this._zustand.auto_progress();\n this.stepwise_fullsync();\n };\n Object.defineProperty(FuncNodesWorker.prototype, \"is_open\", {\n get: function () {\n return this.state.getState().is_open;\n },\n set: function (v) {\n this.state.setState({ is_open: v });\n },\n enumerable: false,\n configurable: true\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 [4 /*yield*/, this.on_sync_complete(this)];\n case 6:\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 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_3__[\"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.upload_file = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var _files = _b.files, _onProgressCallback = _b.onProgressCallback, _root = _b.root;\n return __generator(this, function (_c) {\n throw new Error(\"handle_large_message_hint not implemented \");\n });\n });\n };\n FuncNodesWorker.prototype.handle_large_message_hint = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n return __generator(this, function (_c) {\n throw new Error(\"handle_large_message_hint not implemented \");\n });\n });\n };\n FuncNodesWorker.prototype.recieve_workerevent = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var _c;\n var event = _b.event, data = _b.data;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _c = event;\n switch (_c) {\n case \"worker_error\": return [3 /*break*/, 1];\n case \"update_worker_dependencies\": return [3 /*break*/, 2];\n case \"lib_update\": return [3 /*break*/, 3];\n case \"fullsync\": return [3 /*break*/, 5];\n case \"external_worker_update\": return [3 /*break*/, 7];\n }\n return [3 /*break*/, 10];\n case 1:\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.logger.error(data.error)];\n case 2:\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.lib.libstate.getState().set({\n external_worker: data.worker_dependencies,\n })];\n case 3: return [4 /*yield*/, this.sync_lib()];\n case 4:\n _d.sent();\n return [2 /*return*/];\n case 5: return [4 /*yield*/, this.stepwise_fullsync()];\n case 6:\n _d.sent();\n return [2 /*return*/];\n case 7: return [4 /*yield*/, this.sync_lib()];\n case 8:\n _d.sent();\n return [4 /*yield*/, this.sync_external_worker()];\n case 9:\n _d.sent();\n return [2 /*return*/];\n case 10:\n console.warn(\"Unhandled worker event\", event, data);\n return [3 /*break*/, 11];\n case 11: return [2 /*return*/];\n }\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_unforward\":\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_forward\":\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 case \"after_remove_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 case \"progress\":\n if (!this._zustand)\n return [2 /*return*/];\n if (data.node) {\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"update\",\n node: {\n id: data.node,\n progress: data.info,\n },\n id: data.node,\n from_remote: true,\n })];\n }\n console.warn(\"Unhandled nodepsace event\", event, data);\n break;\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_package_dependency\",\n kwargs: { name: 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.remove_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: \"remove_package_dependency\",\n kwargs: { name: 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.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 case \"workerevent\": return [3 /*break*/, 6];\n case \"large_message\": return [3 /*break*/, 8];\n }\n return [3 /*break*/, 10];\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*/, 11];\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*/, 11];\n case 5:\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.set_progress(data);\n return [3 /*break*/, 11];\n case 6: return [4 /*yield*/, this.recieve_workerevent(data)];\n case 7: return [2 /*return*/, _b.sent()];\n case 8: return [4 /*yield*/, this.handle_large_message_hint(data)];\n case 9: return [2 /*return*/, _b.sent()];\n case 10:\n console.warn(\"Unhandled message\", data);\n return [3 /*break*/, 11];\n case 11: 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.update_io_options = 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, options = _b.options;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"update_io_options\",\n kwargs: __assign({ nid: nid, ioid: ioid }, options),\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] = __assign({}, options),\n _c),\n },\n id: nid,\n from_remote: true,\n });\n return [2 /*return*/];\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 FuncNodesWorker.prototype.get_available_modules = function () {\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_available_modules\",\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.update_external_worker = function (worker_id, class_id, data) {\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: \"update_external_worker\",\n kwargs: __assign({ worker_id: worker_id, class_id: class_id }, data),\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.remove_external_worker = function (worker_id, class_id) {\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: \"remove_external_worker\",\n kwargs: { worker_id: worker_id, class_id: class_id },\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.export = function () {\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: \"export_worker\",\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.update_from_export = function (data) {\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: \"update_from_export\",\n kwargs: { data: data },\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n this.stepwise_fullsync();\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://@linkdlab/funcnodes_react_flow/./src/funcnodes/funcnodesworker.ts?");
|
|
2819
|
+
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_3__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_2__ = __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/* 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\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 }, 5000);\n this.state = (0,zustand__WEBPACK_IMPORTED_MODULE_2__.create)(function (_set, _get) { return ({\n is_open: true,\n }); });\n if (data.zustand)\n this.set_zustand(data.zustand);\n if (data.on_sync_complete) {\n this.on_sync_complete = data.on_sync_complete;\n }\n else {\n this.on_sync_complete = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {\n return [2 /*return*/];\n }); }); };\n }\n }\n FuncNodesWorker.prototype.set_zustand = function (zustand) {\n if (zustand === this._zustand)\n return;\n this._zustand = zustand;\n zustand.set_worker(this);\n this._zustand.auto_progress();\n this.stepwise_fullsync();\n };\n Object.defineProperty(FuncNodesWorker.prototype, \"is_open\", {\n get: function () {\n return this.state.getState().is_open;\n },\n set: function (v) {\n this.state.setState({ is_open: v });\n },\n enumerable: false,\n configurable: true\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 [4 /*yield*/, this.on_sync_complete(this)];\n case 6:\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 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_3__[\"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(\"async send(data: any) not implemented\");\n });\n });\n };\n FuncNodesWorker.prototype.upload_file = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var _files = _b.files, _onProgressCallback = _b.onProgressCallback, _root = _b.root;\n return __generator(this, function (_c) {\n throw new Error(\"upload_file not implemented \");\n });\n });\n };\n FuncNodesWorker.prototype.handle_large_message_hint = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n return __generator(this, function (_c) {\n throw new Error(\"async handle_large_message_hint({}: LargeMessageHint) not implemented \");\n });\n });\n };\n FuncNodesWorker.prototype.recieve_workerevent = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var _c;\n var event = _b.event, data = _b.data;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _c = event;\n switch (_c) {\n case \"worker_error\": return [3 /*break*/, 1];\n case \"update_worker_dependencies\": return [3 /*break*/, 2];\n case \"lib_update\": return [3 /*break*/, 3];\n case \"fullsync\": return [3 /*break*/, 5];\n case \"external_worker_update\": return [3 /*break*/, 7];\n }\n return [3 /*break*/, 10];\n case 1:\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.logger.error(data.error)];\n case 2:\n if (!this._zustand)\n return [2 /*return*/];\n return [2 /*return*/, this._zustand.lib.libstate.getState().set({\n external_worker: data.worker_dependencies,\n })];\n case 3: return [4 /*yield*/, this.sync_lib()];\n case 4:\n _d.sent();\n return [2 /*return*/];\n case 5: return [4 /*yield*/, this.stepwise_fullsync()];\n case 6:\n _d.sent();\n return [2 /*return*/];\n case 7: return [4 /*yield*/, this.sync_lib()];\n case 8:\n _d.sent();\n return [4 /*yield*/, this.sync_external_worker()];\n case 9:\n _d.sent();\n return [2 /*return*/];\n case 10:\n console.warn(\"Unhandled worker event\", event, data);\n return [3 /*break*/, 11];\n case 11: return [2 /*return*/];\n }\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_unforward\":\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_forward\":\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 case \"after_remove_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 case \"progress\":\n if (!this._zustand)\n return [2 /*return*/];\n if (data.node) {\n return [2 /*return*/, this._zustand.on_node_action({\n type: \"update\",\n node: {\n id: data.node,\n progress: data.info,\n },\n id: data.node,\n from_remote: true,\n })];\n }\n console.warn(\"Unhandled nodepsace event\", event, data);\n break;\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, release) {\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_package_dependency\",\n kwargs: { name: lib, version: release },\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.remove_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: \"remove_package_dependency\",\n kwargs: { name: 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.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 case \"workerevent\": return [3 /*break*/, 6];\n case \"large_message\": return [3 /*break*/, 8];\n }\n return [3 /*break*/, 10];\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*/, 11];\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*/, 11];\n case 5:\n if (!this._zustand)\n return [2 /*return*/];\n this._zustand.set_progress(data);\n return [3 /*break*/, 11];\n case 6: return [4 /*yield*/, this.recieve_workerevent(data)];\n case 7: return [2 /*return*/, _b.sent()];\n case 8: return [4 /*yield*/, this.handle_large_message_hint(data)];\n case 9: return [2 /*return*/, _b.sent()];\n case 10:\n console.warn(\"Unhandled message\", data);\n return [3 /*break*/, 11];\n case 11: 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.update_io_options = 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, options = _b.options;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"update_io_options\",\n kwargs: __assign({ nid: nid, ioid: ioid }, options),\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] = __assign({}, options),\n _c),\n },\n id: nid,\n from_remote: true,\n });\n return [2 /*return*/];\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 FuncNodesWorker.prototype.get_available_modules = function () {\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_available_modules\",\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.update_external_worker = function (worker_id, class_id, data) {\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: \"update_external_worker\",\n kwargs: __assign({ worker_id: worker_id, class_id: class_id }, data),\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.remove_external_worker = function (worker_id, class_id) {\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: \"remove_external_worker\",\n kwargs: { worker_id: worker_id, class_id: class_id },\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.export = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var res;\n var _c = _b.withFiles, withFiles = _c === void 0 ? false : _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this._send_cmd({\n cmd: \"export_worker\",\n wait_for_response: true,\n kwargs: { with_files: withFiles },\n })];\n case 1:\n res = _d.sent();\n return [2 /*return*/, res];\n }\n });\n });\n };\n FuncNodesWorker.prototype.update_from_export = function (data) {\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: \"update_from_export\",\n kwargs: { data: data },\n wait_for_response: true,\n })];\n case 1:\n res = _a.sent();\n this.stepwise_fullsync();\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://@linkdlab/funcnodes_react_flow/./src/funcnodes/funcnodesworker.ts?");
|
|
2820
2820
|
|
|
2821
2821
|
/***/ }),
|
|
2822
2822
|
|
|
@@ -2836,7 +2836,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2836
2836
|
\******************************************/
|
|
2837
2837
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2838
2838
|
|
|
2839
|
-
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 axios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! axios */ \"../node_modules/axios/lib/axios.js\");\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\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 Object.defineProperty(WebSocketWorker.prototype, \"http_protocol\", {\n get: function () {\n return this.secure_url ? \"https\" : \"http\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WebSocketWorker.prototype, \"secure_url\", {\n get: function () {\n return this._url.startsWith(\"wss\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WebSocketWorker.prototype, \"url_wo_protocol\", {\n get: function () {\n return this._url.substring(this.secure_url ? 6 : 5);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WebSocketWorker.prototype, \"http_url\", {\n get: function () {\n var url = this.http_protocol + \"://\" + this.url_wo_protocol;\n // add / to url if it does not end with /\n if (url[url.length - 1] !== \"/\") {\n url += \"/\";\n }\n return url;\n },\n enumerable: false,\n configurable: true\n });\n WebSocketWorker.prototype.upload_file = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var url, formdata, fileArray, _i, fileArray_1, file, subtarget, target, response, error_1;\n var files = _b.files, onProgressCallback = _b.onProgressCallback, root = _b.root;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n url = \"\".concat(this.http_url, \"upload/\");\n formdata = new FormData();\n fileArray = Array.isArray(files) ? files : Array.from(files);\n for (_i = 0, fileArray_1 = fileArray; _i < fileArray_1.length; _i++) {\n file = fileArray_1[_i];\n subtarget = file.webkitRelativePath || file.name;\n target = root ? \"\".concat(root, \"/\").concat(subtarget) : subtarget;\n formdata.append(\"file\", file, target);\n }\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n return [4 /*yield*/, axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"].post(url, formdata, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n onUploadProgress: function (progressEvent) {\n if (onProgressCallback) {\n onProgressCallback(progressEvent.loaded, progressEvent.total);\n }\n },\n })];\n case 2:\n response = _c.sent();\n // Assuming the server response contains a JSON object with the filename\n return [2 /*return*/, response.data.file];\n case 3:\n error_1 = _c.sent();\n throw new Error(\"Failed to upload file\");\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n WebSocketWorker.prototype.handle_large_message_hint = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var url, resp, json;\n var msg_id = _b.msg_id;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n url = this.http_url;\n url += \"message/\" + msg_id;\n return [4 /*yield*/, fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n },\n })];\n case 1:\n resp = _c.sent();\n return [4 /*yield*/, resp.json()];\n case 2:\n json = _c.sent();\n this.recieve(json);\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_large_message = function (jsondata) {\n return __awaiter(this, void 0, void 0, function () {\n var url;\n return __generator(this, function (_a) {\n url = \"http\" + this._url.substring(2);\n //add /msg_id to url to get the large message (url might end with /)\n if (url[url.length - 1] !== \"/\") {\n url += \"/\";\n }\n url += \"message/\";\n console.log(jsondata.length);\n return [2 /*return*/];\n });\n });\n };\n WebSocketWorker.prototype.send = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var jsonstring, datasize;\n var _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\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 jsonstring = JSON.stringify(data);\n datasize = new Blob([jsonstring]).size;\n if (!(datasize > 1000000)) return [3 /*break*/, 2];\n // 1MB\n (_b = this._zustand) === null || _b === void 0 ? void 0 : _b.logger.info(\"Data too large, sending via http\");\n return [4 /*yield*/, this.send_large_message(jsonstring)];\n case 1: return [2 /*return*/, _d.sent()];\n case 2:\n (_c = this._zustand) === null || _c === void 0 ? void 0 : _c.logger.debug(\"Sending data\", data);\n this._websocket.send(jsonstring);\n return [2 /*return*/];\n }\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://@linkdlab/funcnodes_react_flow/./src/funcnodes/websocketworker.ts?");
|
|
2839
|
+
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 axios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! axios */ \"../node_modules/axios/lib/axios.js\");\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\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 Object.defineProperty(WebSocketWorker.prototype, \"http_protocol\", {\n get: function () {\n return this.secure_url ? \"https\" : \"http\";\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WebSocketWorker.prototype, \"secure_url\", {\n get: function () {\n return this._url.startsWith(\"wss\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WebSocketWorker.prototype, \"url_wo_protocol\", {\n get: function () {\n return this._url.substring(this.secure_url ? 6 : 5);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(WebSocketWorker.prototype, \"http_url\", {\n get: function () {\n var url = this.http_protocol + \"://\" + this.url_wo_protocol;\n // add / to url if it does not end with /\n if (url[url.length - 1] !== \"/\") {\n url += \"/\";\n }\n return url;\n },\n enumerable: false,\n configurable: true\n });\n WebSocketWorker.prototype.upload_file = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var url, formdata, fileArray, _i, fileArray_1, file, subtarget, target, response, error_1;\n var files = _b.files, onProgressCallback = _b.onProgressCallback, root = _b.root;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n url = \"\".concat(this.http_url, \"upload/\");\n formdata = new FormData();\n fileArray = Array.isArray(files) ? files : Array.from(files);\n for (_i = 0, fileArray_1 = fileArray; _i < fileArray_1.length; _i++) {\n file = fileArray_1[_i];\n subtarget = file.webkitRelativePath || file.name;\n target = root ? \"\".concat(root, \"/\").concat(subtarget) : subtarget;\n formdata.append(\"file\", file, target);\n }\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n return [4 /*yield*/, axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"].post(url, formdata, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n onUploadProgress: function (progressEvent) {\n if (onProgressCallback) {\n onProgressCallback(progressEvent.loaded, progressEvent.total);\n }\n },\n })];\n case 2:\n response = _c.sent();\n // Assuming the server response contains a JSON object with the filename\n return [2 /*return*/, response.data.file];\n case 3:\n error_1 = _c.sent();\n throw new Error(\"Failed to upload file\");\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n WebSocketWorker.prototype.handle_large_message_hint = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var url, resp, json;\n var msg_id = _b.msg_id;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n url = this.http_url + \"message/\" + msg_id;\n return [4 /*yield*/, fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Access-Control-Allow-Origin\": \"*\",\n },\n })];\n case 1:\n resp = _c.sent();\n return [4 /*yield*/, resp.json()];\n case 2:\n json = _c.sent();\n this.recieve(json);\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_large_message = function (jsondata) {\n return __awaiter(this, void 0, void 0, function () {\n var url;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n url = \"\".concat(this.http_url, \"message/\");\n return [4 /*yield*/, fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: jsondata,\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n WebSocketWorker.prototype.send = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var jsonstring, datasize;\n var _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\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 jsonstring = JSON.stringify(data);\n datasize = new Blob([jsonstring]).size;\n if (!(datasize > 1000000)) return [3 /*break*/, 2];\n // 1MB\n (_b = this._zustand) === null || _b === void 0 ? void 0 : _b.logger.info(\"Data too large, sending via http\");\n return [4 /*yield*/, this.send_large_message(jsonstring)];\n case 1: return [2 /*return*/, _d.sent()];\n case 2:\n (_c = this._zustand) === null || _c === void 0 ? void 0 : _c.logger.debug(\"Sending data\", data);\n this._websocket.send(jsonstring);\n return [2 /*return*/];\n }\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://@linkdlab/funcnodes_react_flow/./src/funcnodes/websocketworker.ts?");
|
|
2840
2840
|
|
|
2841
2841
|
/***/ }),
|
|
2842
2842
|
|
|
@@ -2856,7 +2856,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2856
2856
|
\***********************/
|
|
2857
2857
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2858
2858
|
|
|
2859
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FuncNodes: () => (/* binding */ FuncNodes),\n/* harmony export */ FuncNodesContext: () => (/* reexport safe */ _frontend__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext),\n/* harmony export */ FuncNodesReactFlowZustand: () => (/* reexport safe */ _states__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ WebSocketWorker: () => (/* reexport safe */ _funcnodes_websocketworker__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ helperfunctions: () => (/* reexport safe */ _utils_helperfunctions__WEBPACK_IMPORTED_MODULE_3__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var _frontend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./frontend */ \"./src/frontend/index.tsx\");\n/* harmony import */ var _funcnodes_websocketworker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./funcnodes/websocketworker */ \"./src/funcnodes/websocketworker.ts\");\n/* harmony import */ var _utils_helperfunctions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/helperfunctions */ \"./src/utils/helperfunctions.ts\");\n/* harmony import */ var _states__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./states */ \"./src/states/index.ts\");\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom/client */ \"../node_modules/react-dom/client.js\");\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_frontend__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nvar App = function (_a) {\n var id = _a.id, ws_url = _a.ws_url, on_sync_complete = _a.on_sync_complete
|
|
2859
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FuncNodes: () => (/* binding */ FuncNodes),\n/* harmony export */ FuncNodesContext: () => (/* reexport safe */ _frontend__WEBPACK_IMPORTED_MODULE_1__.FuncNodesContext),\n/* harmony export */ FuncNodesReactFlowZustand: () => (/* reexport safe */ _states__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ FuncNodesWorker: () => (/* reexport safe */ _funcnodes__WEBPACK_IMPORTED_MODULE_6__.FuncNodesWorker),\n/* harmony export */ ReactFlowLayer: () => (/* reexport safe */ _frontend_funcnodesreactflow_react_flow_layer__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n/* harmony export */ RenderMappingProvider: () => (/* reexport safe */ _frontend_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_7__.RenderMappingProvider),\n/* harmony export */ WebSocketWorker: () => (/* reexport safe */ _funcnodes_websocketworker__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ assert_full_node: () => (/* reexport safe */ _states_node__WEBPACK_IMPORTED_MODULE_9__.assert_full_node),\n/* harmony export */ deep_update: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_10__.deep_update),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ helperfunctions: () => (/* reexport safe */ _utils_helperfunctions__WEBPACK_IMPORTED_MODULE_3__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var _frontend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./frontend */ \"./src/frontend/index.tsx\");\n/* harmony import */ var _funcnodes_websocketworker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./funcnodes/websocketworker */ \"./src/funcnodes/websocketworker.ts\");\n/* harmony import */ var _utils_helperfunctions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/helperfunctions */ \"./src/utils/helperfunctions.ts\");\n/* harmony import */ var _states__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./states */ \"./src/states/index.ts\");\n/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-dom/client */ \"../node_modules/react-dom/client.js\");\n/* harmony import */ var _funcnodes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./funcnodes */ \"./src/funcnodes/index.ts\");\n/* harmony import */ var _frontend_datarenderer_rendermappings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./frontend/datarenderer/rendermappings */ \"./src/frontend/datarenderer/rendermappings.tsx\");\n/* harmony import */ var _frontend_funcnodesreactflow_react_flow_layer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./frontend/funcnodesreactflow/react_flow_layer */ \"./src/frontend/funcnodesreactflow/react_flow_layer.tsx\");\n/* harmony import */ var _states_node__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./states/node */ \"./src/states/node.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __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};\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_frontend__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nvar App = function (_a) {\n var id = _a.id, ws_url = _a.ws_url, on_sync_complete = _a.on_sync_complete, worker = _a.worker, useWorkerManager = _a.useWorkerManager;\n if (worker === undefined) {\n if (ws_url !== undefined) {\n useWorkerManager = false;\n worker = new _funcnodes_websocketworker__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({\n url: ws_url,\n uuid: id,\n on_sync_complete: on_sync_complete,\n });\n }\n }\n if (worker !== undefined) {\n var fnrf_zst = (0,_states__WEBPACK_IMPORTED_MODULE_4__[\"default\"])({\n useWorkerManager: useWorkerManager,\n default_worker: worker,\n });\n worker.set_zustand(fnrf_zst);\n }\n return (react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(\"div\", { className: \"App\", style: {\n height: \"100%\",\n width: \"100%\",\n } },\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(_frontend__WEBPACK_IMPORTED_MODULE_1__[\"default\"], { id: id, useWorkerManager: useWorkerManager, default_worker: worker, on_sync_complete: on_sync_complete })));\n};\nvar FuncNodes = function (id_or_element, options) {\n var id;\n var element;\n if (options === undefined) {\n options = {};\n }\n if (typeof id_or_element === \"string\") {\n id = id_or_element;\n element = document.getElementById(id);\n }\n else {\n element = id_or_element;\n id = element.id;\n }\n react_dom_client__WEBPACK_IMPORTED_MODULE_5__.createRoot(element).render(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].StrictMode, null,\n react__WEBPACK_IMPORTED_MODULE_0__[\"default\"].createElement(App, __assign({ id: id }, options))));\n};\n// @ts-ignore\nwindow.FuncNodes = FuncNodes;\n// import ReactDOM from \"react-dom\";\n// (async () => {\n// // @ts-ignore\n// window.React = await import(\"react\");\n// })();\n// window.ReactDOM = ReactDOM;\n// @ts-ignore\nwindow.React = react__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n\n\n\n//# sourceURL=webpack://@linkdlab/funcnodes_react_flow/./src/index.tsx?");
|
|
2860
2860
|
|
|
2861
2861
|
/***/ }),
|
|
2862
2862
|
|
|
@@ -8071,8 +8071,13 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
8071
8071
|
/******/ var __webpack_exports__FuncNodes = __webpack_exports__.FuncNodes;
|
|
8072
8072
|
/******/ var __webpack_exports__FuncNodesContext = __webpack_exports__.FuncNodesContext;
|
|
8073
8073
|
/******/ var __webpack_exports__FuncNodesReactFlowZustand = __webpack_exports__.FuncNodesReactFlowZustand;
|
|
8074
|
+
/******/ var __webpack_exports__FuncNodesWorker = __webpack_exports__.FuncNodesWorker;
|
|
8075
|
+
/******/ var __webpack_exports__ReactFlowLayer = __webpack_exports__.ReactFlowLayer;
|
|
8076
|
+
/******/ var __webpack_exports__RenderMappingProvider = __webpack_exports__.RenderMappingProvider;
|
|
8074
8077
|
/******/ var __webpack_exports__WebSocketWorker = __webpack_exports__.WebSocketWorker;
|
|
8078
|
+
/******/ var __webpack_exports__assert_full_node = __webpack_exports__.assert_full_node;
|
|
8079
|
+
/******/ var __webpack_exports__deep_update = __webpack_exports__.deep_update;
|
|
8075
8080
|
/******/ var __webpack_exports__default = __webpack_exports__["default"];
|
|
8076
8081
|
/******/ var __webpack_exports__helperfunctions = __webpack_exports__.helperfunctions;
|
|
8077
|
-
/******/ export { __webpack_exports__FuncNodes as FuncNodes, __webpack_exports__FuncNodesContext as FuncNodesContext, __webpack_exports__FuncNodesReactFlowZustand as FuncNodesReactFlowZustand, __webpack_exports__WebSocketWorker as WebSocketWorker, __webpack_exports__default as default, __webpack_exports__helperfunctions as helperfunctions };
|
|
8082
|
+
/******/ export { __webpack_exports__FuncNodes as FuncNodes, __webpack_exports__FuncNodesContext as FuncNodesContext, __webpack_exports__FuncNodesReactFlowZustand as FuncNodesReactFlowZustand, __webpack_exports__FuncNodesWorker as FuncNodesWorker, __webpack_exports__ReactFlowLayer as ReactFlowLayer, __webpack_exports__RenderMappingProvider as RenderMappingProvider, __webpack_exports__WebSocketWorker as WebSocketWorker, __webpack_exports__assert_full_node as assert_full_node, __webpack_exports__deep_update as deep_update, __webpack_exports__default as default, __webpack_exports__helperfunctions as helperfunctions };
|
|
8078
8083
|
/******/
|