@rkmodules/rules 0.0.77 → 0.0.79

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../node_modules/tslib/tslib.es6.js","../src/lib/DataTree/index.ts","../src/lib/DataTree/util.ts","../src/lib/Engine/util.ts","../src/lib/Primitives/Util/getValue.ts","../src/lib/Primitives/Util/log.ts","../src/lib/Primitives/Util/value.ts","../src/lib/Primitives/Util/index.ts","../src/lib/Primitives/Math/add.ts","../src/lib/Primitives/Math/calc.ts","../src/lib/Primitives/Math/cos.ts","../src/lib/Primitives/Math/divide.ts","../src/lib/Primitives/Math/equalTo.ts","../src/lib/Primitives/Math/greaterThan.ts","../src/lib/Primitives/Math/lessThan.ts","../src/lib/Primitives/Math/modulo.ts","../src/lib/Primitives/Math/multiply.ts","../src/lib/Primitives/Math/pow.ts","../src/lib/Primitives/Math/sin.ts","../src/lib/Primitives/Math/sqrt.ts","../src/lib/Primitives/Math/subtract.ts","../src/lib/Primitives/Math/tan.ts","../src/lib/Primitives/Math/index.ts","../src/lib/Primitives/List/filterList.ts","../src/lib/Primitives/List/splitGroup.ts","../src/lib/Primitives/List/listItem.ts","../src/lib/Primitives/List/listLength.ts","../src/lib/Primitives/List/mergeGroup.ts","../src/lib/Primitives/List/cartesianGroups.ts","../src/lib/Primitives/List/concat.ts","../src/lib/Primitives/List/relativeItem.ts","../src/lib/Primitives/List/relativeItems.ts","../src/lib/Primitives/List/index.ts","../src/lib/Primitives/Sequence/series.ts","../src/lib/Primitives/Sequence/index.ts","../src/lib/Primitives/Tree/mergeTree.ts","../src/lib/Primitives/Tree/simplifyTree.ts","../src/lib/Primitives/Tree/index.ts","../src/lib/Primitives/Logic/groupAnd.ts","../src/lib/Primitives/Logic/groupOr.ts","../src/lib/Primitives/Logic/index.ts","../src/lib/Primitives/IO/input.ts","../src/lib/Primitives/IO/output.ts","../src/lib/Primitives/IO/index.ts","../src/lib/Primitives/index.ts","../src/lib/Engine/Rule.ts","../src/lib/Engine/index.ts","../node_modules/react-dnd/dist/core/DndContext.js","../node_modules/redux/es/redux.js","../node_modules/@react-dnd/invariant/dist/index.js","../node_modules/dnd-core/dist/utils/js_utils.js","../node_modules/dnd-core/dist/actions/dragDrop/types.js","../node_modules/dnd-core/dist/actions/dragDrop/local/setClientOffset.js","../node_modules/dnd-core/dist/actions/dragDrop/beginDrag.js","../node_modules/dnd-core/dist/actions/dragDrop/drop.js","../node_modules/dnd-core/dist/actions/dragDrop/endDrag.js","../node_modules/dnd-core/dist/utils/matchesType.js","../node_modules/dnd-core/dist/actions/dragDrop/hover.js","../node_modules/dnd-core/dist/actions/dragDrop/publishDragSource.js","../node_modules/dnd-core/dist/actions/dragDrop/index.js","../node_modules/dnd-core/dist/classes/DragDropManagerImpl.js","../node_modules/dnd-core/dist/utils/coords.js","../node_modules/dnd-core/dist/utils/dirtiness.js","../node_modules/dnd-core/dist/classes/DragDropMonitorImpl.js","../node_modules/@react-dnd/asap/dist/makeRequestCall.js","../node_modules/@react-dnd/asap/dist/AsapQueue.js","../node_modules/@react-dnd/asap/dist/RawTask.js","../node_modules/@react-dnd/asap/dist/TaskFactory.js","../node_modules/@react-dnd/asap/dist/asap.js","../node_modules/dnd-core/dist/actions/registry.js","../node_modules/dnd-core/dist/contracts.js","../node_modules/dnd-core/dist/interfaces.js","../node_modules/dnd-core/dist/utils/getNextUniqueId.js","../node_modules/dnd-core/dist/classes/HandlerRegistryImpl.js","../node_modules/dnd-core/dist/utils/equality.js","../node_modules/dnd-core/dist/reducers/dirtyHandlerIds.js","../node_modules/dnd-core/dist/reducers/dragOffset.js","../node_modules/dnd-core/dist/reducers/dragOperation.js","../node_modules/dnd-core/dist/reducers/refCount.js","../node_modules/dnd-core/dist/reducers/stateId.js","../node_modules/dnd-core/dist/reducers/index.js","../node_modules/dnd-core/dist/createDragDropManager.js","../node_modules/react-dnd/dist/core/DndProvider.js","../node_modules/fast-deep-equal/index.js","../node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js","../node_modules/react-dnd/dist/hooks/useCollector.js","../node_modules/react-dnd/dist/hooks/useMonitorOutput.js","../node_modules/react-dnd/dist/hooks/useCollectedProps.js","../node_modules/react-dnd/dist/hooks/useOptionalFactory.js","../node_modules/react-dnd/dist/hooks/useDrag/connectors.js","../node_modules/react-dnd/dist/internals/DragSourceMonitorImpl.js","../node_modules/react-dnd/dist/internals/DropTargetMonitorImpl.js","../node_modules/react-dnd/dist/internals/registration.js","../node_modules/@react-dnd/shallowequal/dist/index.js","../node_modules/react-dnd/dist/internals/isRef.js","../node_modules/react-dnd/dist/internals/wrapConnectorHooks.js","../node_modules/react-dnd/dist/internals/SourceConnector.js","../node_modules/react-dnd/dist/internals/TargetConnector.js","../node_modules/react-dnd/dist/hooks/useDragDropManager.js","../node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js","../node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js","../node_modules/react-dnd/dist/hooks/useDrag/DragSourceImpl.js","../node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js","../node_modules/react-dnd/dist/hooks/useDrag/useDragType.js","../node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js","../node_modules/react-dnd/dist/hooks/useDrag/useDrag.js","../node_modules/react-dnd/dist/hooks/useDrop/connectors.js","../node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.js","../node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js","../node_modules/react-dnd/dist/hooks/useDrop/useAccept.js","../node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js","../node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js","../node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js","../node_modules/react-dnd/dist/hooks/useDrop/useDrop.js","../src/lib/Flow/Context.tsx","../src/lib/Flow/Components/Control.tsx","../src/lib/Flow/Components/Input.tsx","../src/lib/Flow/Components/Param.tsx","../src/lib/Flow/Components/Output.tsx","../src/lib/Flow/Components/NodeContainer.tsx","../src/lib/Flow/Nodes/Log.tsx","../src/lib/Flow/Components/GenericNode.tsx","../src/lib/Flow/Nodes/Calc.tsx","../src/lib/Flow/Nodes/Default.tsx","../src/lib/Flow/Components/Menu.tsx","../src/lib/Flow/Nodes/Input.tsx","../src/lib/Flow/Nodes/Merge.tsx","../src/lib/Flow/Nodes/Output.tsx","../src/lib/Flow/Nodes/index.ts","../src/lib/hooks/useVariable.ts","../src/lib/hooks/usePositions.ts","../src/lib/hooks/useFlow.ts","../src/lib/Flow/Components/ConnectionLine.tsx","../src/lib/Flow/index.tsx","../src/lib/hooks/useDraggableNode.ts","../src/lib/hooks/useFunction.ts","../node_modules/react-dnd-html5-backend/dist/utils/js_utils.js","../node_modules/react-dnd-html5-backend/dist/EnterLeaveCounter.js","../node_modules/react-dnd-html5-backend/dist/NativeDragSources/NativeDragSource.js","../node_modules/react-dnd-html5-backend/dist/NativeTypes.js","../node_modules/react-dnd-html5-backend/dist/NativeDragSources/getDataFromDataTransfer.js","../node_modules/react-dnd-html5-backend/dist/NativeDragSources/nativeTypesConfig.js","../node_modules/react-dnd-html5-backend/dist/NativeDragSources/index.js","../node_modules/react-dnd-html5-backend/dist/BrowserDetector.js","../node_modules/react-dnd-html5-backend/dist/MonotonicInterpolant.js","../node_modules/react-dnd-html5-backend/dist/OffsetUtils.js","../node_modules/react-dnd-html5-backend/dist/OptionsReader.js","../node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js","../node_modules/react-dnd-html5-backend/dist/index.js","../src/lib/ddcontext.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { Tree } from \"./types\";\n\nexport * from \"./types\";\n\nexport const DISCARD = Symbol(\"DISCARD\");\n\n/**\n * removes the common prefix from the paths in the tree\n * @param tree\n * @returns\n */\nexport function simplifyTree<T>(tree: Tree<T>): Tree<T> {\n const keys = Object.keys(tree);\n if (keys.length <= 1) return tree; // ✅ Don't simplify if only one path\n\n // Parse all paths into number arrays\n const parsedPaths = keys.map((path) => path.split(\";\").map(Number));\n\n // Find common prefix\n let prefixLength = parsedPaths[0].length;\n for (let i = 1; i < parsedPaths.length; i++) {\n const path = parsedPaths[i];\n for (let j = 0; j < prefixLength; j++) {\n if (path[j] !== parsedPaths[0][j]) {\n prefixLength = j;\n break;\n }\n }\n }\n\n const simplified: Tree<T> = {};\n\n for (let i = 0; i < parsedPaths.length; i++) {\n const oldPath = keys[i];\n const newPath = parsedPaths[i].slice(prefixLength).join(\";\");\n\n simplified[newPath] = tree[oldPath];\n }\n\n return simplified;\n}\n\n/**\n * Expands a tree by applying a function to each item in the tree.\n * @param tree\n * @param fn\n * @returns\n */\nexport function expandTree<T, U>(\n tree: Tree<T>,\n fn: (item: T, path: string, index: number) => U[]\n): Tree<U> {\n const result: Tree<U> = {};\n\n for (const path in tree) {\n const items = tree[path];\n\n items.forEach((item, i) => {\n const subpath = `${path};${i}`; // Create new sub-branch per item\n const expandedItems = fn(item, path, i); // Apply function\n\n // if (expandedItems.length > 0) {\n result[subpath] = expandedItems;\n // }\n });\n }\n\n return result;\n}\n\n/**\n * Creates a new branch for each item in the existing tree branches\n * @param tree\n * @returns\n */\nexport function graftTree<T>(tree: Tree<T>): Tree<T> {\n return Object.fromEntries(\n Object.entries(tree as Tree<any>).reduce((entries, [path, values]) => {\n entries.push(\n ...values.map(\n (value, index) =>\n [path + \";\" + index, [value]] as [string, any[]]\n )\n );\n return entries;\n }, [] as [string, any[]][])\n );\n}\n\n/**\n * Reduce the complexity of a tree by merging the outermost branches.\n * @param tree\n */\nexport function trimTree<T>(tree: Tree<T>, depth = 1): Tree<T> {\n if (depth <= 0) return tree;\n\n const result: Tree<T> = {};\n for (const path in tree) {\n const parts = path.split(\";\");\n // leave at least a path length of 1\n const end = depth >= parts.length ? 1 : -depth;\n const newPath = parts.slice(0, end).join(\";\");\n if (!result[newPath]) {\n result[newPath] = [];\n }\n // flatten onto new branch\n result[newPath].push(...tree[path]);\n }\n return result;\n}\n\n/**\n * checks if the given structure is a data tree\n */\nexport function isTree(value: any): value is Tree<any> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value) &&\n Object.keys(value).length > 0 &&\n Object.values(value).every((v) => Array.isArray(v))\n );\n}\n\nexport function isSingleTon(value: Tree<any>): boolean {\n return (\n Object.keys(value).length === 1 && Object.values(value)[0].length === 1\n );\n}\n\n/**\n * turns a value or array of values into a tree\n * - a single value becomes a tree with one branch \"0\" and one item\n * - an array of values becomes a tree with one branch \"0\" and the items in the array\n * - a tree is returned as is\n */\nexport function broadCast<T>(value: T | T[] | Tree<T>): Tree<T> {\n if (Array.isArray(value)) {\n return { \"0\": value };\n }\n if (isTree(value)) {\n return value;\n }\n return { \"0\": [value] };\n}\n\nexport function getBranch<T>(tree: Tree<T>, path: string): T[] | void {\n return tree[path];\n}\n\nexport function getPaths<T>(tree: Tree<T>): string[] {\n return Object.keys(tree);\n}\n\n/**\n * maps a tree, the tree branches are flatmapped, so if an array is returned for each item in the list, a flat list is returned\n * @param tree\n * @param fn\n * @returns\n */\nexport function mapTree<T, U>(\n tree: Tree<T>,\n fn: (item: T, path: string, index: number) => U | U[]\n): Tree<U> {\n return nAryOnTree([tree], function mapTreeCallback([item], [path], index) {\n return fn(item, path, index);\n });\n}\n\nexport function mapTreeBranch<T, U>(\n tree: Tree<T>,\n fn: (branch: T[], path: string) => U[] | typeof DISCARD\n): Tree<U> {\n return nAryOnTreeBranch(\n [tree],\n function mapTreeBranchCallback([branch], [path]) {\n return fn(branch || [], path);\n }\n );\n}\n\n/**\n * n-ary operation on a tree, branch by branch\n * - branches are matched by index,\n * - last branches are repeated when the branch count differs\n * - branch names from the longest or first tree are used\n * - if a corresponding index does not exist in the branch, its item argument is undefined\n * - the callback function is called with (items, paths)\n * @param trees\n * @param fn\n * @returns\n */\nexport function nAryOnTreeBranch<V>(\n trees: Tree<any>[],\n fn: (\n branches: (any[] | undefined)[],\n paths: string[]\n ) => V[] | typeof DISCARD\n): Tree<V> {\n const result: Tree<V> = {};\n const allKeys = trees.map((tree) => Object.keys(tree));\n const maxBranches = Math.max(...allKeys.map((keys) => keys.length));\n\n // if (!trees.every((t) => Object.keys(t).length > 0)) {\n // return result;\n // }\n\n for (let i = 0; i < maxBranches; i++) {\n const paths = allKeys.map((keys) => keys[Math.min(i, keys.length - 1)]);\n const branches = trees.map((tree) => tree[paths[trees.indexOf(tree)]]);\n\n // get all the paths of which the trees are the longest, use the first\n const maxPaths = paths.filter(\n (_, i) => allKeys[i].length === maxBranches\n );\n const path = maxPaths[0];\n\n const newBranch = fn(branches, paths);\n if (newBranch !== DISCARD) {\n result[path] = newBranch;\n }\n }\n\n return result;\n}\n\n/**\n * n-ary operation on a tree, branch by branch\n * - branches are matched by index,\n * - last branches are repeated when the branch count differs\n * - branch names from the longest or first tree are used\n * - if a corresponding index does not exist in the branch, its item argument is undefined\n * - the callback function is called with (items, paths, index)\n * - return DISCARD to not add the item to the branch\n * @param trees\n * @param fn\n * @returns\n */\nexport function nAryOnTree<R>(\n trees: Tree<any>[],\n fn: (items: any[], paths: string[], index: number) => R | R[],\n fill?: boolean\n): Tree<R> {\n return nAryOnTreeBranch(\n trees,\n function nAryOnTreeCallback(branches, paths) {\n const maxLength = Math.max(...branches.map((b = []) => b.length));\n let results: R[] = [];\n for (let i = 0; i < maxLength; i++) {\n const items = branches.map((b = []) => {\n if (fill) {\n // repeat last item if index exceeds branch length\n return b[Math.min(i, b.length - 1)];\n }\n return b[i];\n });\n const result = fn(items, paths, i);\n if (result !== DISCARD) {\n results = results.concat(result);\n }\n }\n\n return results;\n }\n );\n}\n\n/**\n * binary operation on a tree, branch by branch\n * - branches are matched by index,\n * - last branches are repeated when the branch count differs\n * - branch names from the longest or first tree are used\n * - if a corresponding index does not exist in the branch, its item argument is undefined\n * - the callback function is called with (itemA, itemB, pathA, pathB)\n * @param treeA\n * @param treeB\n * @param fn\n * @returns\n */\nexport function binaryOnTreeBranch<T, U, V>(\n treeA: Tree<T>,\n treeB: Tree<U>,\n fn: (\n branchA: T[],\n branchB: U[],\n pathA: string,\n pathB: string\n ) => V[] | typeof DISCARD\n): Tree<V> {\n return nAryOnTreeBranch(\n [treeA, treeB],\n function binaryOnTreeBranchCallback(\n [branchA, branchB],\n [pathA, pathB]\n ) {\n return fn(branchA || [], branchB || [], pathA, pathB);\n }\n );\n}\n\n/**\n * binary operation on a tree, branch by branch\n * - branches are matched by index,\n * - last branches are repeated when the branch count differs\n * - branch names from the longest or first tree are used\n * - if a corresponding index does not exist in the branch, its item argument is undefined\n * - the callback function is called with (itemA, itemB, pathA, pathB, index)\n * @param treeA\n * @param treeB\n * @param fn\n * @returns\n */\nexport function binaryOnTree<T, U, V>(\n treeA: Tree<T>,\n treeB: Tree<U>,\n fn: (\n itemA: T | undefined,\n itemB: U | undefined,\n pathA: string,\n pathB: string,\n index: number\n ) => V | V[],\n fill?: boolean\n): Tree<V> {\n return nAryOnTree(\n [treeA, treeB],\n function binaryOnTreeCallback([itemA, itemB], [pathA, pathB], index) {\n return fn(itemA, itemB, pathA, pathB, index);\n },\n fill\n );\n}\n\nexport function treeSize<T>(tree: Tree<T>): number {\n return Object.keys(tree).length;\n}\n\nexport function sameShape(a: Tree<any>, b: Tree<any>) {\n let sa = Object.keys(a).sort().join(\"|\");\n let sb = Object.keys(b).sort().join(\"|\");\n return sa === sb;\n}\n\n/**\n * flattens the whole tree into an array\n */\nexport function toArray<T>(a: Tree<T>): T[] {\n return Object.values(a).flat();\n}\n","// utilities\n\nimport { Path, Tree } from \"./types\";\n\n/**\n * small utilities for path manipulation and tree manipulation\n */\n\n/**\n * trims leading and trailing semicolons from a path\n * @param p\n * @returns\n */\nexport function norm(p: Path) {\n return p.replace(/^;+|;+$/g, \"\");\n}\n\n/**\n * joins two paths with a semicolon, normalizing them first\n * @param a\n * @param b\n * @returns\n */\nexport function joinPath(a: Path, b: Path) {\n return [norm(a), norm(b)].filter(Boolean).join(\";\"); // \"\" + \"0;1\" -> \"0;1\"\n}\n\n/**\n * merges two trees by concatenating the branches with the same path\n * @param a\n * @param b\n * @returns\n */\nexport function mergeTrees<T>(...others: Tree<T>[]): Tree<T> {\n const a = others.shift() || { 0: [] };\n const out: Tree<T> = { ...a };\n others.forEach((b) => {\n for (const [k, arr] of Object.entries(b)) {\n out[k] = (out[k] ?? []).concat(arr);\n }\n });\n return out;\n}\n\n/**\n * prefixes all paths in the tree with the given prefix\n * @param t\n * @param prefix\n * @returns\n */\nexport function prefixPaths<T>(t: Tree<T>, prefix: Path): Tree<T> {\n if (!prefix || prefix === \"\") return t;\n const out: Tree<T> = {};\n for (const [k, arr] of Object.entries(t)) {\n out[joinPath(prefix, k)] = arr.slice();\n }\n return out;\n}\n","import {\n broadCast,\n isTree,\n mapTree,\n mapTreeBranch,\n nAryOnTree,\n nAryOnTreeBranch,\n Tree,\n} from \"../DataTree\";\nimport { mergeTrees } from \"../DataTree/util\";\nimport { VarRef, VarRefValue } from \"./types\";\n\nexport function isReference(value: any): value is string {\n return (\n typeof value === \"string\" && !!value.match(/^<([\\w\\.]+)>$/)\n // value.startsWith(\"<\") &&\n // value.endsWith(\">\")\n );\n}\n\nexport function hasReference(value: any): value is string {\n return typeof value === \"string\" && !!value.match?.(/<(.*?)>/g);\n}\n\nexport function parseReference(ref: string) {\n return ref.slice(1, -1);\n}\n\nexport function uid() {\n return Math.random().toString(36).substring(2, 15);\n}\n\nexport function getValue(obj: Record<string, any>, path: string) {\n if (!(obj && path)) {\n return;\n }\n const parts = path.split(\".\");\n let value: any = obj[parts.shift() || \"\"];\n while (parts.length && value) {\n value = value[parts.shift() || \"\"];\n }\n return value;\n}\n\nfunction interpolateValue(\n value: VarRefValue | VarRefValue[],\n scope: Record<string, Record<string, Tree<any>>>\n): any {\n // interpolating arrays\n if (Array.isArray(value)) {\n if (!value.length) return [];\n if (value.every(isTree)) {\n // array of trees: merge the trees into one\n const tree = mergeTrees(...(value as Tree<any>[]));\n // then interpolate each value in the tree in case there are references\n return mapTree(tree, (v) => interpolateValue(v, scope));\n } else {\n // array of other values: interpolate to an array of trees\n let mappedValue = value.map((v) =>\n broadCast(interpolateValue(v, scope))\n );\n if (!mappedValue.every(isTree)) {\n // this is a bit of a hack when the values were all plain values\n // in that case, just return them, which will result in a single tree\n return mappedValue;\n }\n\n // then, for each value, combine the branches with the same index\n return mergeTrees(...(mappedValue as Tree<any>[]));\n }\n }\n // a tree is mapped over each value\n if (isTree(value)) {\n return mapTree(value, (v) => interpolateValue(v, scope));\n }\n // an object is interpolated recursively\n if (typeof value === \"object\" && value !== null) {\n if (Object.keys(value).length === 0) {\n return {};\n }\n // interpolate to a record of trees:\n let interpolated = interpolate(value as VarRef, scope);\n\n // then, for each value, combine the branches with the same index\n const keys = Object.keys(interpolated);\n return nAryOnTree(Object.values(interpolated), (items) => {\n return Object.fromEntries(\n items.map((item, keyIndex) => {\n return [keys[keyIndex], item];\n })\n );\n });\n }\n if (hasReference(value)) {\n if (isReference(value)) {\n // it's a simple reference string\n const parts = parseReference(value).split(\".\");\n let mappedValue = getValue(scope, parts.slice(0, 2).join(\".\"));\n if (parts.length > 2) {\n // deep interpolate\n mappedValue = mapTree(mappedValue, (v: any) =>\n getValue(v, parts.slice(2).join(\".\"))\n );\n }\n return mappedValue;\n } else {\n // it's a template string, break up as an array of strings and references and interpolate each to a tree\n const strings = (value as string).split(/(<.*?>)/);\n const trees = strings.map((str) =>\n broadCast(interpolateValue(str, scope))\n );\n // create a combined string for each item, filling in missing items witht the last\n const combined = nAryOnTree(\n trees,\n (items) => {\n return items.join(\"\");\n },\n true\n );\n return combined;\n }\n }\n return value;\n}\n\nexport function interpolate(\n inputs: VarRef,\n scope: Record<string, Record<string, Tree<any>>>\n): Record<string, Tree<any>> {\n return Object.fromEntries(\n Object.entries(inputs).map(([key, value]) => {\n let mappedValue = interpolateValue(value, scope);\n return [key, broadCast(mappedValue)];\n })\n );\n}\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { DISCARD, mapTree, toArray } from \"../../DataTree\";\nimport { getValue as getVal } from \"../../Engine/util\";\n\n/**\n * TODO: need rank polymorhism on the tree item sizes\n */\nexport const getValue: PrimitiveFunction = {\n name: \"getValue\",\n label: \"Get Value\",\n description: \"Get a value from an object at a specified path.\",\n inputs: {\n tree: \"any\",\n path: \"string\",\n },\n outputs: {\n tree: \"any\",\n },\n // TODO: may want to do something with other values of path\n impl: async (inputs, params) => {\n const paths = toArray<string>(inputs.path || {});\n const tree = mapTree(inputs.tree, (value) => {\n // get the property from the object\n let val = getVal(value, paths[0]);\n if (val === undefined) return DISCARD;\n return val;\n });\n\n return { tree };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\n\nexport const log: PrimitiveFunction = {\n name: \"log\",\n label: \"Log\",\n description: \"Logs the input data to the console\",\n nodeType: \"Log\",\n inputs: {\n data: \"any\",\n },\n outputs: {\n data: \"any\", // Return the data for potential further use\n },\n impl: async (input) => {\n console.table(input.data);\n return {\n data: input.data, // Return the data for potential further use\n };\n },\n};\n","import { broadCast } from \"../../DataTree\";\nimport { PrimitiveFunction } from \"../../Engine\";\n\n/**\n * value primitive function\n */\nexport const value: PrimitiveFunction = {\n name: \"value\",\n label: \"Value\",\n description: \"Outputs a constant value of a specified type\",\n inputs: {},\n params: {\n value: \"string\",\n type: {\n type: \"string\",\n default: \"number\",\n options: [\"number\", \"boolean\", \"string\"],\n },\n },\n outputs: {\n value: \"any\",\n },\n impl: async (inputs, params) => {\n /** todo: there may be multiple values as an array */\n const value = params.value;\n switch (params.type) {\n case \"number\":\n return { value: broadCast(Number(value)) };\n case \"boolean\":\n return { value: broadCast(Boolean(value)) };\n case \"string\":\n return { value: broadCast(String(value)) };\n default:\n // return as is\n return { value: broadCast(value) };\n }\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { getValue } from \"./getValue\";\nimport { log } from \"./log\";\nimport { value } from \"./value\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [getValue.name]: getValue,\n [log.name]: log,\n [value.name]: value,\n};\n\nexport default primitives;\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const add: PrimitiveFunction = {\n name: \"add\",\n label: \"Add\",\n description: \"Add two numbers\",\n inputs: {\n a: { type: \"number\", default: 0 },\n b: { type: \"number\", default: 0 },\n },\n outputs: {\n sum: \"number\",\n },\n impl: async (inputs) => {\n return {\n sum: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA + itemB;\n },\n true\n ),\n };\n },\n};\n","import { create, all, MathNode, SymbolNode } from \"mathjs\";\nimport { PrimitiveFunction, RecOfTrees } from \"../../Engine\";\nimport { broadCast, mapTree, sameShape } from \"../../DataTree\";\n\nlet math = create(all, {});\n\nfunction evaluate(expression: string, scope: Record<string, any>) {\n // console.log(\"evaluating\", expression, \"in\", scope);\n let result;\n try {\n result = math.evaluate(expression, scope);\n if (typeof result.toNumber === \"function\") {\n result = result.toNumber();\n }\n } catch (e) {\n console.log(\"Calc:\", e);\n console.log(\"Calc:\", { expression, scope });\n // todo: communicate errors\n }\n\n // console.log(\"result\", result);\n return result;\n}\n\n/**\n * TODO: need rank polymorhism on the tree item sizes\n */\nexport const calc: PrimitiveFunction = {\n name: \"calc\",\n label: \"Calc\",\n nodeType: \"Calc\",\n inputs: {},\n params: {\n expression: \"string\",\n },\n outputs: {\n result: \"number\",\n },\n impl: async (inputs, params): Promise<RecOfTrees> => {\n const expression = params.expression;\n if (!expression) return {};\n // check for same shape on all inputs\n let inputEntries = Object.entries(inputs);\n if (\n !inputEntries.every(([key, v], i, a) => {\n return sameShape(v, a[0][1]);\n })\n ) {\n throw new Error(\"All inputs must have the same shape\");\n }\n // if no inputs, just return the result of the expression\n if (inputEntries.length === 0) {\n return { result: broadCast(evaluate(expression, {})) };\n }\n // if inputs, evaluate the expression for each input\n const result = mapTree(inputEntries[0][1], (_, p, i) => {\n // create a scope for each input\n let vars: Record<string, any> = {};\n inputEntries.forEach(([key, value]) => {\n vars[key] = value[p][i];\n });\n return evaluate(expression, vars);\n });\n\n // await new Promise((resolve) => setTimeout(resolve, 5000)); // yield to event loop\n\n return { result };\n },\n};\n\nconst BUILT_INS = new Set([\n // constants\n \"pi\",\n \"e\",\n \"tau\",\n \"phi\",\n \"Infinity\",\n \"NaN\",\n \"i\",\n \"true\",\n \"false\",\n \"null\",\n // common built-in functions (skip as variables when used as callees)\n \"sin\",\n \"cos\",\n \"tan\",\n \"asin\",\n \"acos\",\n \"atan\",\n \"atan2\",\n \"sinh\",\n \"cosh\",\n \"tanh\",\n \"log\",\n \"log10\",\n \"ln\",\n \"exp\",\n \"sqrt\",\n \"abs\",\n \"min\",\n \"max\",\n \"round\",\n \"floor\",\n \"ceil\",\n \"sum\",\n \"mean\",\n \"median\",\n \"mode\",\n \"std\",\n \"var\",\n \"pow\",\n \"mod\",\n \"gcd\",\n \"lcm\",\n \"derivative\",\n \"integral\",\n \"simplify\",\n \"im\",\n \"re\",\n]);\n\n/**\n * Return a sorted list of unbound symbol names in a MathJS expression.\n * @param expr The expression string, e.g. \"x + y\"\n * @param scope Names already defined/known (e.g. from your evaluation scope)\n * @param extraBound Extra names to treat as bound (e.g. UI reserved words)\n */\nexport function getUnboundSymbols(\n expr: string,\n scope: Record<string, unknown> = {},\n extraBound: string[] = []\n): string[] {\n let ast;\n try {\n ast = math.parse(expr);\n } catch {\n return [];\n }\n const bound = new Set<string>([...Object.keys(scope), ...extraBound]);\n const free = new Set<string>();\n\n const isFunctionCallee = (node: MathNode, parent?: MathNode) =>\n parent?.type === \"FunctionNode\" && (parent as any).fn === node;\n\n ast.traverse((node: MathNode, _path: string, parent?: MathNode) => {\n if (node.type !== \"SymbolNode\") return;\n\n const name = (node as SymbolNode).name;\n\n // Skip if symbol is the function name in a call, e.g. sin in sin(x)\n if (isFunctionCallee(node, parent)) return;\n\n // Skip mathjs built-ins and anything caller said is already bound\n if (BUILT_INS.has(name) || bound.has(name)) return;\n\n free.add(name);\n });\n\n // If you want to also exclude left-hand sides of assignments within the expr:\n // (Uncommon in \"fill in variables\" UIs, but easy to guard against.)\n ast.traverse((node: MathNode) => {\n if (node.type === \"AssignmentNode\") {\n const target: MathNode = (node as any).object;\n if (target?.type === \"SymbolNode\") {\n free.delete((target as SymbolNode).name);\n }\n }\n });\n\n return Array.from(free).sort();\n}\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { DISCARD, mapTree } from \"../../DataTree\";\n\nexport const cosDeg: PrimitiveFunction = {\n name: \"cosDeg\",\n label: \"Cosine\",\n description: \"Cosine of angle in degrees\",\n inputs: {\n a: { type: \"number\", default: 0 },\n },\n outputs: {\n cos: \"number\",\n },\n impl: async (inputs) => {\n return {\n cos: mapTree(inputs.a, (angle) => {\n if (angle === undefined) return DISCARD;\n return Math.cos((angle * Math.PI) / 180);\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const divide: PrimitiveFunction = {\n name: \"divide\",\n label: \"Divide\",\n description: \"Divide two numbers\",\n inputs: {\n a: { type: \"number\", default: 1 },\n b: { type: \"number\", default: 1 },\n },\n outputs: {\n quotient: \"number\",\n },\n impl: async (inputs) => {\n return {\n quotient: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n if (itemB === 0) return DISCARD;\n return itemA / itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const equalTo: PrimitiveFunction = {\n name: \"equalTo\",\n label: \"Equal to\",\n description: \"Compare equal and not equal\",\n inputs: {\n a: { type: \"number\", default: 0 },\n b: { type: \"number\", default: 0 },\n },\n outputs: {\n eq: \"boolean\",\n neq: \"boolean\",\n },\n impl: async (inputs) => {\n return {\n eq: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA === itemB;\n },\n true\n ),\n neq: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA !== itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const greaterThan: PrimitiveFunction = {\n name: \"greaterThan\",\n label: \"Greater Than\",\n description: \"Compare on greater than or greater than or equal to\",\n inputs: {\n a: { type: \"number\", default: 0 },\n b: { type: \"number\", default: 0 },\n },\n outputs: {\n gt: \"boolean\",\n gte: \"boolean\",\n },\n impl: async (inputs) => {\n return {\n gt: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA > itemB;\n },\n true\n ),\n gte: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA >= itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const lessThan: PrimitiveFunction = {\n name: \"lessThan\",\n label: \"Less Than\",\n description: \"Compare on less than or less than or equal to\",\n inputs: {\n a: { type: \"number\", default: 0 },\n b: { type: \"number\", default: 0 },\n },\n outputs: {\n lt: \"boolean\",\n lte: \"boolean\",\n },\n impl: async (inputs) => {\n return {\n lt: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA < itemB;\n },\n true\n ),\n lte: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA <= itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const modulo: PrimitiveFunction = {\n name: \"modulo\",\n label: \"Modulo\",\n description: \"Division remainder of two numbers\",\n inputs: {\n a: { type: \"number\", default: 1 },\n b: { type: \"number\", default: 1 },\n },\n outputs: {\n mod: \"number\",\n },\n impl: async (inputs) => {\n return {\n mod: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA % itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const multiply: PrimitiveFunction = {\n name: \"multiply\",\n label: \"Multiply\",\n description: \"Multiply two numbers\",\n inputs: {\n a: { type: \"number\", default: 1 },\n b: { type: \"number\", default: 1 },\n },\n outputs: {\n product: \"number\",\n },\n impl: async (inputs) => {\n return {\n product: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA * itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD, mapTree } from \"../../DataTree\";\n\nexport const pow: PrimitiveFunction = {\n name: \"pow\",\n label: \"Power\",\n description: \"Power a number\",\n inputs: {\n x: { type: \"number\", default: 0 },\n n: { type: \"number\", default: 2 },\n },\n outputs: {\n pow: \"number\",\n },\n impl: async (inputs) => {\n return {\n pow: binaryOnTree(inputs.x, inputs.n, (x, n) => {\n if (x === undefined || n === undefined) return DISCARD;\n return Math.pow(x, n);\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { DISCARD, mapTree } from \"../../DataTree\";\n\nexport const sinDeg: PrimitiveFunction = {\n name: \"sinDeg\",\n label: \"Sine\",\n description: \"Sine of angle in degrees\",\n inputs: {\n a: { type: \"number\", default: 0 },\n },\n outputs: {\n sin: \"number\",\n },\n impl: async (inputs) => {\n return {\n sin: mapTree(inputs.a, (angle) => {\n if (angle === undefined) return DISCARD;\n return Math.sin((angle * Math.PI) / 180);\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { DISCARD, mapTree } from \"../../DataTree\";\n\nexport const sqrt: PrimitiveFunction = {\n name: \"sqrt\",\n label: \"Square root\",\n description: \"Square root of a number\",\n inputs: {\n x: { type: \"number\", default: 0 },\n },\n outputs: {\n sqrt: \"number\",\n },\n impl: async (inputs) => {\n return {\n sqrt: mapTree(inputs.x, (x) => {\n if (x === undefined) return DISCARD;\n if (x < 0) return DISCARD;\n return Math.sqrt(x);\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const subtract: PrimitiveFunction = {\n name: \"subtract\",\n label: \"Subtract\",\n description: \"Subtract two numbers\",\n inputs: {\n a: { type: \"number\", default: 0 },\n b: { type: \"number\", default: 0 },\n },\n outputs: {\n difference: \"number\",\n },\n impl: async (inputs) => {\n return {\n difference: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA - itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { DISCARD, mapTree } from \"../../DataTree\";\n\nexport const tanDeg: PrimitiveFunction = {\n name: \"tanDeg\",\n label: \"Tangent\",\n description: \"Tangent of angle in degrees\",\n inputs: {\n a: { type: \"number\", default: 0 },\n },\n outputs: {\n tan: \"number\",\n },\n impl: async (inputs) => {\n return {\n tan: mapTree(inputs.a, (angle) => {\n if (angle === undefined) return DISCARD;\n return Math.tan((angle * Math.PI) / 180);\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { add } from \"./add\";\nimport { calc } from \"./calc\";\nimport { cosDeg } from \"./cos\";\nimport { divide } from \"./divide\";\nimport { equalTo } from \"./equalTo\";\nimport { greaterThan } from \"./greaterThan\";\nimport { lessThan } from \"./lessThan\";\nimport { modulo } from \"./modulo\";\nimport { multiply } from \"./multiply\";\nimport { pow } from \"./pow\";\nimport { sinDeg } from \"./sin\";\nimport { sqrt } from \"./sqrt\";\nimport { subtract } from \"./subtract\";\nimport { tanDeg } from \"./tan\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [calc.name]: calc,\n [equalTo.name]: equalTo,\n [lessThan.name]: lessThan,\n [greaterThan.name]: greaterThan,\n [add.name]: add,\n [subtract.name]: subtract,\n [multiply.name]: multiply,\n [divide.name]: divide,\n [modulo.name]: modulo,\n [sinDeg.name]: sinDeg,\n [cosDeg.name]: cosDeg,\n [tanDeg.name]: tanDeg,\n [sqrt.name]: sqrt,\n [pow.name]: pow,\n};\n\nexport default primitives;\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTreeBranch, DISCARD } from \"../../DataTree\";\n\nexport const filterList: PrimitiveFunction = {\n name: \"filterList\",\n label: \"Filter List\",\n description: \"Filters the list by a boolean value\",\n inputs: {\n list: \"any\",\n keep: \"boolean\",\n },\n params: {\n removeEmpty: { type: \"boolean\", default: false },\n },\n outputs: {\n list: \"any\",\n others: \"any\",\n },\n impl: async (inputs, params) => {\n return {\n list: binaryOnTreeBranch(\n inputs.list || {},\n inputs.keep || {},\n (branchA, branchB) => {\n let result = branchA.filter((item, index) => {\n return (\n branchB[Math.min(index, branchB.length - 1)] ===\n true\n );\n });\n if (!result.length && params.removeEmpty) {\n return DISCARD;\n }\n return result;\n }\n ),\n others: binaryOnTreeBranch(\n inputs.list || {},\n inputs.keep || {},\n (branchA, branchB) => {\n let result = branchA.filter((item, index) => {\n return (\n branchB[Math.min(index, branchB.length - 1)] ===\n false\n );\n });\n if (!result.length && params.removeEmpty) {\n return DISCARD;\n }\n return result;\n }\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { graftTree as graft } from \"../../DataTree\";\n\nexport const splitGroup: PrimitiveFunction = {\n name: \"splitGroup\",\n label: \"Split Group\",\n description: \"Splits every item of a group into its own group\",\n inputs: {\n tree: \"any\",\n },\n outputs: {\n tree: \"any\", // Return the grafted nodes\n },\n impl: async (inputs) => {\n return {\n tree: graft(inputs.tree || {}),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTreeBranch, DISCARD } from \"../../DataTree\";\n\nexport const listItem: PrimitiveFunction = {\n name: \"listItem\",\n label: \"List Item\",\n description: \"Retrieve the items from the list at the specified indices\",\n inputs: {\n list: \"any\",\n index: {\n type: \"number\",\n default: 0,\n },\n },\n outputs: {\n item: \"any\",\n others: \"any\",\n },\n impl: async (inputs) => {\n const item = binaryOnTreeBranch(\n inputs.list || {},\n inputs.index || {},\n (branch, indices) => {\n if (indices) {\n return indices.map((i) => branch[i]);\n }\n return DISCARD;\n }\n );\n const others = binaryOnTreeBranch(\n inputs.list || {},\n inputs.index || {},\n (branch, indices) => {\n return branch.filter((_, i) => !indices?.includes(i));\n }\n );\n return {\n item,\n others,\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { mapTreeBranch } from \"../../DataTree\";\n\nexport const listLength: PrimitiveFunction = {\n name: \"listLength\",\n label: \"List Length\",\n description: \"Get the length of a list\",\n inputs: {\n list: \"any\",\n },\n outputs: {\n length: \"number\",\n },\n impl: async (inputs) => {\n return {\n length: mapTreeBranch(inputs.list || {}, (branch) => {\n return [branch.length];\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { trimTree as trim } from \"../../DataTree\";\n\nexport const mergeGroup: PrimitiveFunction = {\n name: \"mergeGroup\",\n label: \"Merge Group\",\n description: \"Merge the deepest groups into their parent.\",\n inputs: {\n tree: \"any\",\n },\n params: {\n depth: { type: \"number\", default: 1 }, // Optional depth to trim the tree\n },\n outputs: {\n tree: \"any\", // Return the trimed nodes\n },\n impl: async (inputs, params) => {\n const depth = params.depth ?? 1;\n return {\n tree: trim(inputs.tree, depth),\n };\n },\n};\n","import { PrimitiveFunction, RecOfTrees } from \"../../Engine/types\";\nimport { getPaths, Tree } from \"../../DataTree\";\n\nexport const cartesianGroups: PrimitiveFunction = {\n name: \"cartesianGroups\",\n label: \"Cartesian Groups\",\n description: \"Duplicate groups such that all pairings are created.\",\n inputs: {\n treeA: \"any\",\n treeB: \"any\",\n },\n params: {},\n outputs: {\n treeA: \"any\",\n treeB: \"any\",\n },\n impl: async (inputs, params): Promise<RecOfTrees> => {\n if (!inputs.treeA || !inputs.treeB) {\n return {};\n }\n\n const pathsA = getPaths(inputs.treeA);\n const pathsB = getPaths(inputs.treeB);\n\n const treeA: Tree<any> = {};\n const treeB: Tree<any> = {};\n pathsB.forEach((pathB, ib) => {\n pathsA.forEach((pathA, ia) => {\n const pa = `${ib};${pathA}`;\n treeA[pa] = inputs.treeA[pathA];\n const pb = `${pathB};${ia}`;\n treeB[pb] = inputs.treeB[pathB];\n });\n });\n\n return {\n treeA,\n treeB,\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTreeBranch, DISCARD, mapTreeBranch } from \"../../DataTree\";\n\nexport const concat: PrimitiveFunction = {\n name: \"concat\",\n label: \"Concat\",\n description: \"Concatenates two lists back to back\",\n inputs: {\n treeA: \"any\",\n treeB: \"any\",\n },\n outputs: {\n result: \"any\",\n },\n impl: async (inputs) => {\n return {\n result: binaryOnTreeBranch(\n inputs.treeA || {},\n inputs.treeB || {},\n (branchA, branchB) => {\n if (branchA === undefined) return branchB || DISCARD;\n if (branchB === undefined) return branchA || DISCARD;\n return branchA.concat(branchB);\n }\n ),\n };\n },\n};\n","import { binaryOnTreeBranch, DISCARD } from \"../../DataTree\";\nimport { PrimitiveFunction } from \"../../Engine\";\n\nexport const relativeItem: PrimitiveFunction = {\n name: \"relativeItem\",\n label: \"Relative Item\",\n description: \"Pairs each item in the tree with its next item\",\n inputs: {\n tree: { type: \"any\" },\n offset: { type: \"number\", default: 1, step: 1 },\n },\n params: {\n wrap: { type: \"boolean\", default: true },\n },\n outputs: {\n itemA: \"any\",\n itemB: \"any\",\n },\n impl: async (inputs, params) => {\n return {\n itemA: inputs.tree || {},\n itemB: binaryOnTreeBranch(\n inputs.tree || {},\n inputs.offset || {},\n (branch, offsets) => {\n let mapped = branch.map((_, i) => {\n const offset = offsets[0] ?? 1;\n let index = i + offset;\n if (params.wrap) {\n index = index % branch.length;\n if (index < 0) index += branch.length;\n }\n return branch[index] ?? DISCARD;\n });\n return mapped.filter((v) => v !== DISCARD);\n }\n ),\n };\n },\n};\n","import { binaryOnTreeBranch, DISCARD } from \"../../DataTree\";\nimport { PrimitiveFunction } from \"../../Engine\";\n\nexport const relativeItems: PrimitiveFunction = {\n name: \"relativeItems\",\n label: \"Relative Items\",\n description:\n \"Pairs each item in the tree with an item in another tree at a specified offset\",\n inputs: {\n treeA: { type: \"any\" },\n treeB: { type: \"any\" },\n offset: { type: \"number\", default: 1, step: 1 },\n },\n params: {\n wrap: { type: \"boolean\", default: true },\n },\n outputs: {\n itemA: \"any\",\n itemB: \"any\",\n },\n impl: async (inputs, params) => {\n return {\n itemA: inputs.treeA || {},\n itemB: binaryOnTreeBranch(\n inputs.treeB || {},\n inputs.offset || {},\n (branch, offsets) => {\n let mapped = branch.map((_, i) => {\n const offset = offsets[0] ?? 1;\n let index = i + offset;\n if (params.wrap) {\n index = index % branch.length;\n if (index < 0) index += branch.length;\n }\n return branch[index] ?? DISCARD;\n });\n return mapped.filter((v) => v !== DISCARD);\n }\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { filterList } from \"./filterList\";\nimport { splitGroup } from \"./splitGroup\";\nimport { listItem } from \"./listItem\";\nimport { listLength } from \"./listLength\";\nimport { mergeGroup } from \"./mergeGroup\";\nimport { shiftList } from \"./shiftList\";\nimport { cartesianGroups } from \"./cartesianGroups\";\nimport { concat } from \"./concat\";\nimport { relativeItem } from \"./relativeItem\";\nimport { relativeItems } from \"./relativeItems\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [splitGroup.name]: splitGroup,\n [mergeGroup.name]: mergeGroup,\n [listItem.name]: listItem,\n [listLength.name]: listLength,\n [filterList.name]: filterList,\n // [shiftList.name]: shiftList,\n [relativeItem.name]: relativeItem,\n [relativeItems.name]: relativeItems,\n [cartesianGroups.name]: cartesianGroups,\n [concat.name]: concat,\n};\n\nexport default primitives;\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { graftTree, nAryOnTree, nAryOnTreeBranch } from \"../../DataTree\";\n\nexport const series: PrimitiveFunction = {\n name: \"series\",\n label: \"Series\",\n description: \"Create a series of numbers.\",\n inputs: {\n start: { type: \"number\", default: 0 },\n step: { type: \"number\", default: 1 },\n count: { type: \"number\", default: 10 },\n },\n outputs: {\n series: \"number\",\n },\n impl: async (inputs) => {\n return {\n series: nAryOnTreeBranch(\n [\n graftTree(inputs.start),\n graftTree(inputs.step),\n graftTree(inputs.count),\n ],\n ([starts = [], steps = [], counts = []]) => {\n const start = starts[0];\n const step = steps[0];\n const count = counts[0];\n let series: number[] = [];\n for (let i = 0; i < count; i++) {\n series.push(start + i * step);\n }\n return series;\n }\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { series } from \"./series\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [series.name]: series,\n};\n\nexport default primitives;\n","import { Tree } from \"../../DataTree\";\nimport { PrimitiveFunction, RecOfTrees } from \"../../Engine\";\n\nexport const mergeTree: PrimitiveFunction = {\n name: \"mergeTree\",\n label: \"Merge Tree\",\n description: \"Merge multiple trees into a single tree.\",\n nodeType: \"Merge\",\n inputs: {},\n outputs: {\n result: \"any\",\n },\n impl: async (inputs): Promise<RecOfTrees> => {\n const result: Tree<any> = {};\n\n Object.values(inputs).forEach((input) => {\n Object.entries(input).forEach(([key, value]) => {\n if (!result[key]) {\n result[key] = value;\n } else {\n result[key] = [...result[key], ...value];\n }\n });\n });\n return { result };\n },\n};\n","import { Tree, simplifyTree as simplify } from \"../../DataTree\";\nimport { PrimitiveFunction, RecOfTrees } from \"../../Engine\";\n\nexport const simplifyTree: PrimitiveFunction = {\n name: \"simplifyTree\",\n label: \"Simplify Tree\",\n description: \"Simplify a tree by removing redundant groups.\",\n inputs: {\n tree: \"any\",\n },\n outputs: {\n tree: \"any\",\n },\n impl: async (inputs): Promise<RecOfTrees> => {\n if (!inputs.tree) {\n return {};\n }\n return {\n tree: simplify(inputs.tree),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { mergeTree } from \"./mergeTree\";\nimport { simplifyTree } from \"./simplifyTree\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [mergeTree.name]: mergeTree,\n [simplifyTree.name]: simplifyTree,\n};\n\nexport default primitives;\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { mapTreeBranch } from \"../../DataTree\";\n\nexport const groupAnd: PrimitiveFunction = {\n name: \"groupAnd\",\n label: \"Group and\",\n description: \"Returns true if all of the items in a group are true\",\n inputs: {\n tree: \"boolean\",\n },\n outputs: {\n result: \"boolean\",\n },\n impl: async (inputs) => {\n return {\n result: mapTreeBranch(inputs.tree || {}, (branch) => {\n return [branch.reduce((acc, val) => acc && val, true)];\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { mapTreeBranch } from \"../../DataTree\";\n\nexport const groupOr: PrimitiveFunction = {\n name: \"groupOr\",\n label: \"Group or\",\n description: \"Returns true if any of the items in a group are true\",\n inputs: {\n tree: \"boolean\",\n },\n outputs: {\n result: \"boolean\",\n },\n impl: async (inputs) => {\n return {\n result: mapTreeBranch(inputs.tree || {}, (branch) => {\n return [branch.reduce((acc, val) => acc || val, false)];\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { groupAnd } from \"./groupAnd\";\nimport { groupOr } from \"./groupOr\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [groupAnd.name]: groupAnd,\n [groupOr.name]: groupOr,\n};\n\nexport default primitives;\n","import { PrimitiveFunction, RecOfTrees } from \"../../Engine\";\n\nexport const inputs: PrimitiveFunction = {\n name: \"inputs\",\n label: \"Input\",\n description: \"Data input.\",\n nodeType: \"Input\",\n inputs: {},\n outputs: {},\n impl: async (): Promise<RecOfTrees> => {\n return {};\n },\n};\n","import { PrimitiveFunction, RecOfTrees } from \"../../Engine\";\n\nexport const output: PrimitiveFunction = {\n name: \"output\",\n label: \"Output\",\n description: \"Data output.\",\n nodeType: \"Output\",\n inputs: {},\n outputs: {},\n impl: async (): Promise<RecOfTrees> => {\n return {};\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { inputs } from \"./input\";\nimport { output } from \"./output\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [inputs.name]: inputs,\n [output.name]: output,\n};\n\nexport default primitives;\n","import { PrimitiveFunction } from \"../Engine/types\";\nimport Util from \"./Util\";\nimport Math from \"./Math\";\nimport List from \"./List\";\nimport Sequence from \"./Sequence\";\nimport Tree from \"./Tree\";\nimport Logic from \"./Logic\";\nimport IO from \"./IO\";\n\nexport const Lib = { Util, Math, List, Sequence, Tree, Logic, IO };\n\nexport const primitives: Record<string, PrimitiveFunction> = {\n ...IO,\n ...Util,\n ...Math,\n ...List,\n ...Sequence,\n ...Tree,\n ...Logic,\n};\n","import { PrimitiveFunction, AnyFunction } from \"./types\";\n\nexport function isPrimitive(\n node: AnyFunction | PrimitiveFunction\n): node is PrimitiveFunction {\n return (node as PrimitiveFunction).impl !== undefined;\n}\n","import { Tree } from \"../DataTree\";\nimport { primitives } from \"../Primitives\";\nimport { isPrimitive } from \"./Rule\";\nimport {\n GraphedFunction,\n NormalizedVarDef,\n PrimitiveFunction,\n AnyFunction,\n VarDef,\n VarRef,\n RecOfTrees,\n FunctionCall,\n} from \"./types\";\nimport {\n getValue,\n interpolate,\n isReference,\n parseReference,\n uid,\n} from \"./util\";\n\nexport * from \"./types\";\nexport * from \"./util\";\n\nexport interface Ref {\n name: string;\n path: string;\n parts: string[];\n refNode: string;\n refField: string;\n}\n\nexport function normalizeVarDef(varDef: VarDef): NormalizedVarDef {\n if (typeof varDef === \"string\") {\n return {\n type: varDef,\n };\n }\n return varDef as NormalizedVarDef;\n}\n\nexport function getReferences(inputs: VarRef) {\n const references: Ref[] = [];\n Object.entries(inputs).forEach(([name, value]) => {\n const values = Array.isArray(value) ? value : [value];\n values.forEach((value) => {\n if (!isReference(value)) {\n return;\n }\n const path = parseReference(value);\n const parts = path.split(\".\");\n references.push({\n name,\n path,\n parts,\n refNode: parts[0],\n refField: parts.slice(1).join(\".\"),\n });\n });\n });\n return references;\n}\n\nexport function topSort(fn: GraphedFunction): GraphedFunction {\n const ordered: string[] = [];\n const visiting: Set<string> = new Set();\n const done: Set<string> = new Set();\n\n const visit = (id: string) => {\n // if already done, return\n if (done.has(id)) return;\n // if being visited, we have a loop\n if (visiting.has(id)) {\n throw new Error(`Circular dependency detected: ${id}`);\n }\n // mark as visiting\n visiting.add(id);\n const fnCall = fn.body[id];\n if (!fnCall) {\n console.warn(`Function ${id} not found in body`, fn);\n }\n // check the inputs and visit them\n Object.values(fnCall.inputs || {}).forEach((input) => {\n if (isReference(input)) {\n const [id] = parseReference(input).split(\".\");\n // visit inputs\n if (id !== \"inputs\") {\n visit(id);\n }\n }\n });\n // push to end of the list\n ordered.push(id);\n // finish visting\n visiting.delete(id);\n // mark as done\n done.add(id);\n };\n\n Object.keys(fn.body).forEach(visit);\n\n const orderedBody = Object.fromEntries(\n ordered.map((id) => [id, fn.body[id]])\n );\n\n return {\n ...fn,\n body: orderedBody,\n };\n}\n\ninterface ExecutionContext {\n scope: Record<string, Record<string, Tree<any>>>;\n timings: Record<string, number>;\n activations: Record<string, boolean>;\n}\n\ninterface EngineEvent {\n name: string;\n inputs: Record<string, Tree<any>>;\n params: Record<string, any>;\n outputs?: Record<string, Tree<any>>;\n executionId: string;\n context: ExecutionContext;\n result?: RecOfTrees;\n startTime: number;\n endTime?: number;\n duration?: number;\n}\nexport class Engine {\n private fnIndex: Record<string, PrimitiveFunction>;\n private listeners: Record<string, Set<(event: EngineEvent) => void>> = {};\n private cache: Record<string, any> = {};\n private cacheMiss = Symbol(\"cacheMiss\");\n\n constructor(morePrimitives: Record<string, PrimitiveFunction> = {}) {\n this.fnIndex = { ...primitives, ...morePrimitives };\n }\n\n private checkCache(\n fnName: string,\n inputs: RecOfTrees\n ): typeof this.cacheMiss | RecOfTrees {\n if (!this.cache[fnName]) {\n return this.cacheMiss;\n }\n\n // TODO: need to check the interpolated inputs, as the references can be the same\n // however, the interpolation does create new objects\n\n return {};\n }\n\n private async runGraph(node: GraphedFunction, inputs, params) {\n const { body = {} } = node;\n // create execution context\n const executionId = uid();\n\n // add input defaults\n Object.entries(node.inputs || {}).forEach(([name, def]) => {\n let normDef = normalizeVarDef(def);\n if (!inputs[name] && normDef.default !== undefined) {\n inputs[name] = normDef.default;\n }\n });\n\n const context: ExecutionContext = {\n scope: { inputs },\n timings: {},\n activations: {},\n };\n const startTime = performance.now();\n\n for (const name in body) {\n const fnCall = body[name];\n const fn = this.fnIndex[fnCall.name];\n if (!fn) {\n throw new Error(`function ${fnCall.name} not found in index`);\n }\n // interpolate inputs given the current result\n const inputs = interpolate(fnCall.inputs || {}, context.scope);\n const params = fnCall.params || {};\n let result: RecOfTrees = {};\n\n let cacheResult = this.checkCache(name, inputs);\n if (cacheResult !== this.cacheMiss) {\n // use as result\n result = cacheResult as RecOfTrees;\n // store the result in the scope\n context.scope[name] = result;\n } else {\n // cache miss, call the function implementation\n context.activations[name] = true;\n const startTime = performance.now();\n this.fireEvent(\"functionCall\", {\n name,\n inputs,\n params,\n executionId,\n context,\n startTime,\n });\n result = await fn.impl(inputs, params);\n const endTime = performance.now();\n context.activations[name] = false;\n context.timings[name] = endTime - startTime;\n\n // store the result in the scope\n context.scope[name] = result;\n\n this.fireEvent(\"functionResult\", {\n name,\n inputs,\n params,\n executionId,\n context,\n result,\n startTime,\n endTime,\n duration: endTime - startTime,\n });\n\n // console.log(\"functionReult\", name, inputs, params, result);\n }\n }\n\n // assemble the result\n const result = interpolate(node.outputs || {}, context.scope);\n const endTime = performance.now();\n\n // fire event\n this.fireEvent(\"result\", {\n name: node.name,\n inputs,\n params,\n executionId,\n context,\n result,\n startTime,\n endTime,\n duration: endTime - startTime,\n });\n\n // console.log(\"Engine run done\", result, context, endTime - startTime);\n\n return result;\n }\n\n /**\n * creates an function that can be evaluated by calling its implementation\n * @param node\n * @returns\n */\n build(node: AnyFunction, id?: string): PrimitiveFunction {\n if (isPrimitive(node)) {\n // already a primitive\n return node;\n }\n const { body = {}, ...props } = node;\n\n const primitive: PrimitiveFunction = {\n ...props,\n outputs: Object.fromEntries(\n Object.entries(node.outputs || {}).map(([key, ref]) => {\n return [key, { type: \"any\" }];\n })\n ),\n mount: (trigger) => {\n // mount all the nodes\n const unsubs: (() => void)[] = [];\n Object.values(body).forEach((n) => {\n const fn = this.fnIndex[n.name];\n if (!fn) {\n console.warn(`function ${n.name} not found in index`);\n return;\n }\n const unsub = fn.mount?.(trigger);\n if (unsub) {\n unsubs.push(unsub);\n }\n });\n return () => {\n // console.log(`Unmounting function: ${node.name}`);\n // unmount all the nodes\n for (const unsub of unsubs) {\n unsub();\n }\n };\n },\n impl: async (inputs, params) => {\n // console.log(\n // `Running function: ${node.name}`,\n // node,\n // inputs,\n // params\n // );\n\n return this.runGraph(node, inputs, params);\n },\n };\n\n this.fnIndex[primitive.name] = primitive;\n return primitive;\n }\n\n mount(node: PrimitiveFunction) {\n return node.mount?.(() => {\n // console.log(`Triggering node: ${node.name}`);\n this.run(node);\n });\n }\n\n subscribe(eventName: string, listener: (event: EngineEvent) => void) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = new Set();\n }\n if (!this.listeners[eventName].has(listener)) {\n this.listeners[eventName].add(listener);\n }\n return () => {\n this.listeners[eventName].delete(listener);\n };\n }\n\n fireEvent(eventName: string, event: EngineEvent) {\n for (const listener of this.listeners[eventName] || []) {\n listener(event);\n }\n }\n\n async run(node: AnyFunction, inputs: VarRef = {}) {\n if (!isPrimitive(node)) {\n // check if cached\n let builtFn = this.getFunction(node.name);\n if (!builtFn) {\n // not yet build\n builtFn = this.build(node);\n }\n return this.run(builtFn, inputs);\n }\n\n // pass tree-y-fied input to the node implementation\n const mappedInputs = interpolate(inputs, {});\n // console.log(\"Engine running with inputs\", inputs, mappedInputs);\n const result = await node.impl?.(mappedInputs, {});\n // console.log(\"Engine run complete\", result);\n\n return result;\n }\n\n getFunction(name: string): PrimitiveFunction | undefined {\n return this.fnIndex[name];\n }\n\n // node handlers\n\n public applyNodeDelete(oldFn: GraphedFunction, nodeIds: string[]) {\n const newFn: GraphedFunction = {\n ...oldFn,\n body: { ...oldFn.body },\n };\n if (nodeIds.every((id) => id === \"output\")) {\n // cannot delete output node\n return oldFn;\n }\n if (nodeIds.includes(\"inputs\")) {\n delete newFn.inputs;\n }\n nodeIds.forEach((id) => {\n delete newFn.body[id];\n });\n // remove any references to the deleted nodes\n Object.entries(newFn.body).forEach(([id, node]) => {\n Object.entries(node.inputs || {}).forEach(([name, value]) => {\n if (isReference(value)) {\n const path = parseReference(value);\n const parts = path.split(\".\");\n if (nodeIds.includes(parts[0])) {\n delete newFn.body[id].inputs?.[name];\n }\n }\n });\n });\n return newFn;\n }\n\n public applyEdgeDelete(\n oldFn: GraphedFunction,\n fromNode: string,\n toNode: string,\n fromField: string,\n toField: string\n ) {\n const newFn: GraphedFunction = {\n ...oldFn,\n body: { ...oldFn.body },\n };\n\n if (toNode === \"output\") {\n // no deleting of output edges\n return oldFn;\n }\n\n const to = newFn.body[toNode];\n const fn = this.fnIndex[to?.name];\n\n if (!to) {\n console.warn(\"Invalid nodes for edge deletion\");\n return newFn;\n }\n\n if (to.inputs && to.inputs[toField] === `<${fromNode}.${fromField}>`) {\n // revert to default value if exists\n delete to.inputs[toField];\n if (fn.inputs?.[toField]) {\n const normDef = normalizeVarDef(fn.inputs[toField]);\n if (normDef.default !== undefined) {\n to.inputs[toField] = normDef.default;\n }\n }\n } else {\n console.warn(\"No matching edge found to delete\");\n }\n\n return newFn;\n }\n\n public applyNodeAdd(\n oldFn: GraphedFunction,\n nodeName: string,\n callback?: (newNode: FunctionCall, id: string) => void\n ) {\n const newFn: GraphedFunction = {\n ...oldFn,\n body: { ...oldFn.body },\n };\n\n if (nodeName === \"inputs\") {\n // ensure inputs node\n newFn.inputs = newFn.inputs || {};\n return newFn;\n }\n\n let id = uid();\n // ensure unique id\n while (newFn.body[id]) {\n id = uid();\n }\n // get inputs defaults\n const inputs = {};\n Object.entries(this.fnIndex[nodeName].inputs || {}).forEach(\n ([key, def]) => {\n const normDef = normalizeVarDef(def);\n if (normDef.default !== undefined) {\n inputs[key] = normDef.default;\n }\n }\n );\n // get params defaults\n const params = {};\n Object.entries(this.fnIndex[nodeName].params || {}).forEach(\n ([key, def]) => {\n const normDef = normalizeVarDef(def);\n if (normDef.default !== undefined) {\n params[key] = normDef.default;\n }\n }\n );\n const newCall: FunctionCall = {\n name: nodeName,\n inputs: inputs,\n params: params,\n };\n newFn.body[id] = newCall;\n callback?.(newCall, id);\n return topSort(newFn);\n }\n\n public applyNodeConnect(\n oldFn: GraphedFunction,\n fromNode: string,\n toNode: string,\n fromField: string,\n toField: string\n ) {\n const newFn: GraphedFunction = {\n ...oldFn,\n body: { ...oldFn.body },\n };\n\n if (toNode === \"output\") {\n newFn.outputs = {\n ...oldFn.outputs,\n [toField]: `<${fromNode}.${fromField}>`,\n };\n // no need to sort, as only output has changed\n return newFn;\n }\n\n // const from = newFn.body[fromNode];\n const to = { ...newFn.body[toNode] };\n\n if (!to) {\n console.warn(\"Invalid nodes for connection\");\n return newFn;\n }\n\n if (!to.inputs) {\n to.inputs = {};\n }\n\n // add the reference\n to.inputs[toField] = `<${fromNode}.${fromField}>`;\n newFn.body[toNode] = to;\n\n return topSort(newFn);\n }\n}\n","import { createContext } from 'react';\n/**\n * Create the React Context\n */ export const DndContext = createContext({\n dragDropManager: undefined\n});\n\n//# sourceMappingURL=DndContext.js.map","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */ export function invariant(condition, format, ...args) {\n if (isProduction()) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n if (!condition) {\n let error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n let argIndex = 0;\n error = new Error(format.replace(/%s/g, function() {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n error.framesToPop = 1 // we don't care about invariant's own frame\n ;\n throw error;\n }\n}\nfunction isProduction() {\n return typeof process !== 'undefined' && process.env['NODE_ENV'] === 'production';\n}\n\n//# sourceMappingURL=index.js.map","// cheap lodash replacements\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */ export function get(obj, path, defaultValue) {\n return path.split('.').reduce((a, c)=>a && a[c] ? a[c] : defaultValue || null\n , obj);\n}\n/**\n * drop-in replacement for _.without\n */ export function without(items, item) {\n return items.filter((i)=>i !== item\n );\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */ export function isString(input) {\n return typeof input === 'string';\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */ export function isObject(input) {\n return typeof input === 'object';\n}\n/**\n * replacement for _.xor\n * @param itemsA\n * @param itemsB\n */ export function xor(itemsA, itemsB) {\n const map = new Map();\n const insertItem = (item)=>{\n map.set(item, map.has(item) ? map.get(item) + 1 : 1);\n };\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n const result = [];\n map.forEach((count, key)=>{\n if (count === 1) {\n result.push(key);\n }\n });\n return result;\n}\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */ export function intersection(itemsA, itemsB) {\n return itemsA.filter((t)=>itemsB.indexOf(t) > -1\n );\n}\n\n//# sourceMappingURL=js_utils.js.map","export const INIT_COORDS = 'dnd-core/INIT_COORDS';\nexport const BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';\nexport const PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';\nexport const HOVER = 'dnd-core/HOVER';\nexport const DROP = 'dnd-core/DROP';\nexport const END_DRAG = 'dnd-core/END_DRAG';\n\n//# sourceMappingURL=types.js.map","import { INIT_COORDS } from '../types.js';\nexport function setClientOffset(clientOffset, sourceClientOffset) {\n return {\n type: INIT_COORDS,\n payload: {\n sourceClientOffset: sourceClientOffset || null,\n clientOffset: clientOffset || null\n }\n };\n}\n\n//# sourceMappingURL=setClientOffset.js.map","import { invariant } from '@react-dnd/invariant';\nimport { isObject } from '../../utils/js_utils.js';\nimport { setClientOffset } from './local/setClientOffset.js';\nimport { BEGIN_DRAG, INIT_COORDS } from './types.js';\nconst ResetCoordinatesAction = {\n type: INIT_COORDS,\n payload: {\n clientOffset: null,\n sourceClientOffset: null\n }\n};\nexport function createBeginDrag(manager) {\n return function beginDrag(sourceIds = [], options = {\n publishSource: true\n }) {\n const { publishSource =true , clientOffset , getSourceClientOffset , } = options;\n const monitor = manager.getMonitor();\n const registry = manager.getRegistry();\n // Initialize the coordinates using the client offset\n manager.dispatch(setClientOffset(clientOffset));\n verifyInvariants(sourceIds, monitor, registry);\n // Get the draggable source\n const sourceId = getDraggableSource(sourceIds, monitor);\n if (sourceId == null) {\n manager.dispatch(ResetCoordinatesAction);\n return;\n }\n // Get the source client offset\n let sourceClientOffset = null;\n if (clientOffset) {\n if (!getSourceClientOffset) {\n throw new Error('getSourceClientOffset must be defined');\n }\n verifyGetSourceClientOffsetIsFunction(getSourceClientOffset);\n sourceClientOffset = getSourceClientOffset(sourceId);\n }\n // Initialize the full coordinates\n manager.dispatch(setClientOffset(clientOffset, sourceClientOffset));\n const source = registry.getSource(sourceId);\n const item = source.beginDrag(monitor, sourceId);\n // If source.beginDrag returns null, this is an indicator to cancel the drag\n if (item == null) {\n return undefined;\n }\n verifyItemIsObject(item);\n registry.pinSource(sourceId);\n const itemType = registry.getSourceType(sourceId);\n return {\n type: BEGIN_DRAG,\n payload: {\n itemType,\n item,\n sourceId,\n clientOffset: clientOffset || null,\n sourceClientOffset: sourceClientOffset || null,\n isSourcePublic: !!publishSource\n }\n };\n };\n}\nfunction verifyInvariants(sourceIds, monitor, registry) {\n invariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');\n sourceIds.forEach(function(sourceId) {\n invariant(registry.getSource(sourceId), 'Expected sourceIds to be registered.');\n });\n}\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset) {\n invariant(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');\n}\nfunction verifyItemIsObject(item) {\n invariant(isObject(item), 'Item must be an object.');\n}\nfunction getDraggableSource(sourceIds, monitor) {\n let sourceId = null;\n for(let i = sourceIds.length - 1; i >= 0; i--){\n if (monitor.canDragSource(sourceIds[i])) {\n sourceId = sourceIds[i];\n break;\n }\n }\n return sourceId;\n}\n\n//# sourceMappingURL=beginDrag.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nimport { invariant } from '@react-dnd/invariant';\nimport { isObject } from '../../utils/js_utils.js';\nimport { DROP } from './types.js';\nexport function createDrop(manager) {\n return function drop(options = {}) {\n const monitor = manager.getMonitor();\n const registry = manager.getRegistry();\n verifyInvariants(monitor);\n const targetIds = getDroppableTargets(monitor);\n // Multiple actions are dispatched here, which is why this doesn't return an action\n targetIds.forEach((targetId, index)=>{\n const dropResult = determineDropResult(targetId, index, registry, monitor);\n const action = {\n type: DROP,\n payload: {\n dropResult: _objectSpread({}, options, dropResult)\n }\n };\n manager.dispatch(action);\n });\n };\n}\nfunction verifyInvariants(monitor) {\n invariant(monitor.isDragging(), 'Cannot call drop while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');\n}\nfunction determineDropResult(targetId, index, registry, monitor) {\n const target = registry.getTarget(targetId);\n let dropResult = target ? target.drop(monitor, targetId) : undefined;\n verifyDropResultType(dropResult);\n if (typeof dropResult === 'undefined') {\n dropResult = index === 0 ? {} : monitor.getDropResult();\n }\n return dropResult;\n}\nfunction verifyDropResultType(dropResult) {\n invariant(typeof dropResult === 'undefined' || isObject(dropResult), 'Drop result must either be an object or undefined.');\n}\nfunction getDroppableTargets(monitor) {\n const targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);\n targetIds.reverse();\n return targetIds;\n}\n\n//# sourceMappingURL=drop.js.map","import { invariant } from '@react-dnd/invariant';\nimport { END_DRAG } from './types.js';\nexport function createEndDrag(manager) {\n return function endDrag() {\n const monitor = manager.getMonitor();\n const registry = manager.getRegistry();\n verifyIsDragging(monitor);\n const sourceId = monitor.getSourceId();\n if (sourceId != null) {\n const source = registry.getSource(sourceId, true);\n source.endDrag(monitor, sourceId);\n registry.unpinSource();\n }\n return {\n type: END_DRAG\n };\n };\n}\nfunction verifyIsDragging(monitor) {\n invariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.');\n}\n\n//# sourceMappingURL=endDrag.js.map","export function matchesType(targetType, draggedItemType) {\n if (draggedItemType === null) {\n return targetType === null;\n }\n return Array.isArray(targetType) ? targetType.some((t)=>t === draggedItemType\n ) : targetType === draggedItemType;\n}\n\n//# sourceMappingURL=matchesType.js.map","import { invariant } from '@react-dnd/invariant';\nimport { matchesType } from '../../utils/matchesType.js';\nimport { HOVER } from './types.js';\nexport function createHover(manager) {\n return function hover(targetIdsArg, { clientOffset } = {}) {\n verifyTargetIdsIsArray(targetIdsArg);\n const targetIds = targetIdsArg.slice(0);\n const monitor = manager.getMonitor();\n const registry = manager.getRegistry();\n const draggedItemType = monitor.getItemType();\n removeNonMatchingTargetIds(targetIds, registry, draggedItemType);\n checkInvariants(targetIds, monitor, registry);\n hoverAllTargets(targetIds, monitor, registry);\n return {\n type: HOVER,\n payload: {\n targetIds,\n clientOffset: clientOffset || null\n }\n };\n };\n}\nfunction verifyTargetIdsIsArray(targetIdsArg) {\n invariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.');\n}\nfunction checkInvariants(targetIds, monitor, registry) {\n invariant(monitor.isDragging(), 'Cannot call hover while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call hover after drop.');\n for(let i = 0; i < targetIds.length; i++){\n const targetId = targetIds[i];\n invariant(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');\n const target = registry.getTarget(targetId);\n invariant(target, 'Expected targetIds to be registered.');\n }\n}\nfunction removeNonMatchingTargetIds(targetIds, registry, draggedItemType) {\n // Remove those targetIds that don't match the targetType. This\n // fixes shallow isOver which would only be non-shallow because of\n // non-matching targets.\n for(let i = targetIds.length - 1; i >= 0; i--){\n const targetId = targetIds[i];\n const targetType = registry.getTargetType(targetId);\n if (!matchesType(targetType, draggedItemType)) {\n targetIds.splice(i, 1);\n }\n }\n}\nfunction hoverAllTargets(targetIds, monitor, registry) {\n // Finally call hover on all matching targets.\n targetIds.forEach(function(targetId) {\n const target = registry.getTarget(targetId);\n target.hover(monitor, targetId);\n });\n}\n\n//# sourceMappingURL=hover.js.map","import { PUBLISH_DRAG_SOURCE } from './types.js';\nexport function createPublishDragSource(manager) {\n return function publishDragSource() {\n const monitor = manager.getMonitor();\n if (monitor.isDragging()) {\n return {\n type: PUBLISH_DRAG_SOURCE\n };\n }\n return;\n };\n}\n\n//# sourceMappingURL=publishDragSource.js.map","import { createBeginDrag } from './beginDrag.js';\nimport { createDrop } from './drop.js';\nimport { createEndDrag } from './endDrag.js';\nimport { createHover } from './hover.js';\nimport { createPublishDragSource } from './publishDragSource.js';\nexport * from './types.js';\nexport function createDragDropActions(manager) {\n return {\n beginDrag: createBeginDrag(manager),\n publishDragSource: createPublishDragSource(manager),\n hover: createHover(manager),\n drop: createDrop(manager),\n endDrag: createEndDrag(manager)\n };\n}\n\n//# sourceMappingURL=index.js.map","import { createDragDropActions } from '../actions/dragDrop/index.js';\nexport class DragDropManagerImpl {\n receiveBackend(backend) {\n this.backend = backend;\n }\n getMonitor() {\n return this.monitor;\n }\n getBackend() {\n return this.backend;\n }\n getRegistry() {\n return this.monitor.registry;\n }\n getActions() {\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */ const manager = this;\n const { dispatch } = this.store;\n function bindActionCreator(actionCreator) {\n return (...args)=>{\n const action = actionCreator.apply(manager, args);\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n const actions = createDragDropActions(this);\n return Object.keys(actions).reduce((boundActions, key)=>{\n const action = actions[key];\n boundActions[key] = bindActionCreator(action);\n return boundActions;\n }, {});\n }\n dispatch(action) {\n this.store.dispatch(action);\n }\n constructor(store, monitor){\n this.isSetUp = false;\n this.handleRefCountChange = ()=>{\n const shouldSetUp = this.store.getState().refCount > 0;\n if (this.backend) {\n if (shouldSetUp && !this.isSetUp) {\n this.backend.setup();\n this.isSetUp = true;\n } else if (!shouldSetUp && this.isSetUp) {\n this.backend.teardown();\n this.isSetUp = false;\n }\n }\n };\n this.store = store;\n this.monitor = monitor;\n store.subscribe(this.handleRefCountChange);\n }\n}\n\n//# sourceMappingURL=DragDropManagerImpl.js.map","/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */ export function add(a, b) {\n return {\n x: a.x + b.x,\n y: a.y + b.y\n };\n}\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */ export function subtract(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */ export function getSourceClientOffset(state) {\n const { clientOffset , initialClientOffset , initialSourceClientOffset } = state;\n if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n return null;\n }\n return subtract(add(clientOffset, initialSourceClientOffset), initialClientOffset);\n}\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */ export function getDifferenceFromInitialOffset(state) {\n const { clientOffset , initialClientOffset } = state;\n if (!clientOffset || !initialClientOffset) {\n return null;\n }\n return subtract(clientOffset, initialClientOffset);\n}\n\n//# sourceMappingURL=coords.js.map","import { intersection } from './js_utils.js';\nexport const NONE = [];\nexport const ALL = [];\nNONE.__IS_NONE__ = true;\nALL.__IS_ALL__ = true;\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */ export function areDirty(dirtyIds, handlerIds) {\n if (dirtyIds === NONE) {\n return false;\n }\n if (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n return true;\n }\n const commonIds = intersection(handlerIds, dirtyIds);\n return commonIds.length > 0;\n}\n\n//# sourceMappingURL=dirtiness.js.map","import { invariant } from '@react-dnd/invariant';\nimport { getDifferenceFromInitialOffset, getSourceClientOffset } from '../utils/coords.js';\nimport { areDirty } from '../utils/dirtiness.js';\nimport { matchesType } from '../utils/matchesType.js';\nexport class DragDropMonitorImpl {\n subscribeToStateChange(listener, options = {}) {\n const { handlerIds } = options;\n invariant(typeof listener === 'function', 'listener must be a function.');\n invariant(typeof handlerIds === 'undefined' || Array.isArray(handlerIds), 'handlerIds, when specified, must be an array of strings.');\n let prevStateId = this.store.getState().stateId;\n const handleChange = ()=>{\n const state = this.store.getState();\n const currentStateId = state.stateId;\n try {\n const canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !areDirty(state.dirtyHandlerIds, handlerIds);\n if (!canSkipListener) {\n listener();\n }\n } finally{\n prevStateId = currentStateId;\n }\n };\n return this.store.subscribe(handleChange);\n }\n subscribeToOffsetChange(listener) {\n invariant(typeof listener === 'function', 'listener must be a function.');\n let previousState = this.store.getState().dragOffset;\n const handleChange = ()=>{\n const nextState = this.store.getState().dragOffset;\n if (nextState === previousState) {\n return;\n }\n previousState = nextState;\n listener();\n };\n return this.store.subscribe(handleChange);\n }\n canDragSource(sourceId) {\n if (!sourceId) {\n return false;\n }\n const source = this.registry.getSource(sourceId);\n invariant(source, `Expected to find a valid source. sourceId=${sourceId}`);\n if (this.isDragging()) {\n return false;\n }\n return source.canDrag(this, sourceId);\n }\n canDropOnTarget(targetId) {\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n const target = this.registry.getTarget(targetId);\n invariant(target, `Expected to find a valid target. targetId=${targetId}`);\n if (!this.isDragging() || this.didDrop()) {\n return false;\n }\n const targetType = this.registry.getTargetType(targetId);\n const draggedItemType = this.getItemType();\n return matchesType(targetType, draggedItemType) && target.canDrop(this, targetId);\n }\n isDragging() {\n return Boolean(this.getItemType());\n }\n isDraggingSource(sourceId) {\n // undefined on initial render\n if (!sourceId) {\n return false;\n }\n const source = this.registry.getSource(sourceId, true);\n invariant(source, `Expected to find a valid source. sourceId=${sourceId}`);\n if (!this.isDragging() || !this.isSourcePublic()) {\n return false;\n }\n const sourceType = this.registry.getSourceType(sourceId);\n const draggedItemType = this.getItemType();\n if (sourceType !== draggedItemType) {\n return false;\n }\n return source.isDragging(this, sourceId);\n }\n isOverTarget(targetId, options = {\n shallow: false\n }) {\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n const { shallow } = options;\n if (!this.isDragging()) {\n return false;\n }\n const targetType = this.registry.getTargetType(targetId);\n const draggedItemType = this.getItemType();\n if (draggedItemType && !matchesType(targetType, draggedItemType)) {\n return false;\n }\n const targetIds = this.getTargetIds();\n if (!targetIds.length) {\n return false;\n }\n const index = targetIds.indexOf(targetId);\n if (shallow) {\n return index === targetIds.length - 1;\n } else {\n return index > -1;\n }\n }\n getItemType() {\n return this.store.getState().dragOperation.itemType;\n }\n getItem() {\n return this.store.getState().dragOperation.item;\n }\n getSourceId() {\n return this.store.getState().dragOperation.sourceId;\n }\n getTargetIds() {\n return this.store.getState().dragOperation.targetIds;\n }\n getDropResult() {\n return this.store.getState().dragOperation.dropResult;\n }\n didDrop() {\n return this.store.getState().dragOperation.didDrop;\n }\n isSourcePublic() {\n return Boolean(this.store.getState().dragOperation.isSourcePublic);\n }\n getInitialClientOffset() {\n return this.store.getState().dragOffset.initialClientOffset;\n }\n getInitialSourceClientOffset() {\n return this.store.getState().dragOffset.initialSourceClientOffset;\n }\n getClientOffset() {\n return this.store.getState().dragOffset.clientOffset;\n }\n getSourceClientOffset() {\n return getSourceClientOffset(this.store.getState().dragOffset);\n }\n getDifferenceFromInitialOffset() {\n return getDifferenceFromInitialOffset(this.store.getState().dragOffset);\n }\n constructor(store, registry){\n this.store = store;\n this.registry = registry;\n }\n}\n\n//# sourceMappingURL=DragDropMonitorImpl.js.map","// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n/* globals self */ const scope = typeof global !== 'undefined' ? global : self;\nconst BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\nexport function makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n const timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n const intervalHandle = setInterval(handleTimer, 50);\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nexport function makeRequestCallFromMutationObserver(callback) {\n let toggle = 1;\n const observer = new BrowserMutationObserver(callback);\n const node = document.createTextNode('');\n observer.observe(node, {\n characterData: true\n });\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\nexport const makeRequestCall = typeof BrowserMutationObserver === 'function' ? // reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nmakeRequestCallFromMutationObserver : // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\nmakeRequestCallFromTimer;\n\n//# sourceMappingURL=makeRequestCall.js.map","/* eslint-disable no-restricted-globals, @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-non-null-assertion */ import { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.js';\nexport class AsapQueue {\n // Use the fastest means possible to execute a task in its own turn, with\n // priority over other events including IO, animation, reflow, and redraw\n // events in browsers.\n //\n // An exception thrown by a task will permanently interrupt the processing of\n // subsequent tasks. The higher level `asap` function ensures that if an\n // exception is thrown by a task, that the task queue will continue flushing as\n // soon as possible, but if you use `rawAsap` directly, you are responsible to\n // either ensure that no exceptions are thrown from your task, or to manually\n // call `rawAsap.requestFlush` if an exception is thrown.\n enqueueTask(task) {\n const { queue: q , requestFlush } = this;\n if (!q.length) {\n requestFlush();\n this.flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n q[q.length] = task;\n }\n constructor(){\n this.queue = [];\n // We queue errors to ensure they are thrown in right order (FIFO).\n // Array-as-queue is good enough here, since we are just dealing with exceptions.\n this.pendingErrors = [];\n // Once a flush has been requested, no further calls to `requestFlush` are\n // necessary until the next `flush` completes.\n // @ts-ignore\n this.flushing = false;\n // The position of the next task to execute in the task queue. This is\n // preserved between calls to `flush` so that it can be resumed if\n // a task throws an exception.\n this.index = 0;\n // If a task schedules additional tasks recursively, the task queue can grow\n // unbounded. To prevent memory exhaustion, the task queue will periodically\n // truncate already-completed tasks.\n this.capacity = 1024;\n // The flush function processes all tasks that have been scheduled with\n // `rawAsap` unless and until one of those tasks throws an exception.\n // If a task throws an exception, `flush` ensures that its state will remain\n // consistent and will resume where it left off when called again.\n // However, `flush` does not make any arrangements to be called again if an\n // exception is thrown.\n this.flush = ()=>{\n const { queue: q } = this;\n while(this.index < q.length){\n const currentIndex = this.index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n this.index++;\n q[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (this.index > this.capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for(let scan = 0, newLength = q.length - this.index; scan < newLength; scan++){\n q[scan] = q[scan + this.index];\n }\n q.length -= this.index;\n this.index = 0;\n }\n }\n q.length = 0;\n this.index = 0;\n this.flushing = false;\n };\n // In a web browser, exceptions are not fatal. However, to avoid\n // slowing down the queue of pending tasks, we rethrow the error in a\n // lower priority turn.\n this.registerPendingError = (err)=>{\n this.pendingErrors.push(err);\n this.requestErrorThrow();\n };\n // `requestFlush` requests that the high priority event queue be flushed as\n // soon as possible.\n // This is useful to prevent an error thrown in a task from stalling the event\n // queue if the exception handled by Node.js’s\n // `process.on(\"uncaughtException\")` or by a domain.\n // `requestFlush` is implemented using a strategy based on data collected from\n // every available SauceLabs Selenium web driver worker at time of writing.\n // https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n this.requestFlush = makeRequestCall(this.flush);\n this.requestErrorThrow = makeRequestCallFromTimer(()=>{\n // Throw first error\n if (this.pendingErrors.length) {\n throw this.pendingErrors.shift();\n }\n });\n }\n} // The message channel technique was discovered by Malte Ubl and was the\n // original foundation for this library.\n // http://www.nonblocking.io/2011/06/windownexttick.html\n // Safari 6.0.5 (at least) intermittently fails to create message ports on a\n // page's first load. Thankfully, this version of Safari supports\n // MutationObservers, so we don't need to fall back in that case.\n // function makeRequestCallFromMessageChannel(callback) {\n // var channel = new MessageChannel();\n // channel.port1.onmessage = callback;\n // return function requestCall() {\n // channel.port2.postMessage(0);\n // };\n // }\n // For reasons explained above, we are also unable to use `setImmediate`\n // under any circumstances.\n // Even if we were, there is another bug in Internet Explorer 10.\n // It is not sufficient to assign `setImmediate` to `requestFlush` because\n // `setImmediate` must be called *by name* and therefore must be wrapped in a\n // closure.\n // Never forget.\n // function makeRequestCallFromSetImmediate(callback) {\n // return function requestCall() {\n // setImmediate(callback);\n // };\n // }\n // Safari 6.0 has a problem where timers will get lost while the user is\n // scrolling. This problem does not impact ASAP because Safari 6.0 supports\n // mutation observers, so that implementation is used instead.\n // However, if we ever elect to use timers in Safari, the prevalent work-around\n // is to add a scroll event listener that calls for a flush.\n // `setTimeout` does not call the passed callback if the delay is less than\n // approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n // even then.\n // This is for `asap.js` only.\n // Its name will be periodically randomized to break any code that depends on\n // // its existence.\n // rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n // ASAP was originally a nextTick shim included in Q. This was factored out\n // into this ASAP package. It was later adapted to RSVP which made further\n // amendments. These decisions, particularly to marginalize MessageChannel and\n // to capture the MutationObserver implementation in a closure, were integrated\n // back into ASAP proper.\n // https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n//# sourceMappingURL=AsapQueue.js.map","// `call`, just like a function.\nexport class RawTask {\n call() {\n try {\n this.task && this.task();\n } catch (error) {\n this.onError(error);\n } finally{\n this.task = null;\n this.release(this);\n }\n }\n constructor(onError, release){\n this.onError = onError;\n this.release = release;\n this.task = null;\n }\n}\n\n//# sourceMappingURL=RawTask.js.map","import { RawTask } from './RawTask.js';\nexport class TaskFactory {\n create(task) {\n const tasks = this.freeTasks;\n const t1 = tasks.length ? tasks.pop() : new RawTask(this.onError, (t)=>tasks[tasks.length] = t\n );\n t1.task = task;\n return t1;\n }\n constructor(onError){\n this.onError = onError;\n this.freeTasks = [];\n }\n}\n\n//# sourceMappingURL=TaskFactory.js.map","import { AsapQueue } from './AsapQueue.js';\nimport { TaskFactory } from './TaskFactory.js';\nconst asapQueue = new AsapQueue();\nconst taskFactory = new TaskFactory(asapQueue.registerPendingError);\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */ export function asap(task) {\n asapQueue.enqueueTask(taskFactory.create(task));\n}\n\n//# sourceMappingURL=asap.js.map","export const ADD_SOURCE = 'dnd-core/ADD_SOURCE';\nexport const ADD_TARGET = 'dnd-core/ADD_TARGET';\nexport const REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';\nexport const REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';\nexport function addSource(sourceId) {\n return {\n type: ADD_SOURCE,\n payload: {\n sourceId\n }\n };\n}\nexport function addTarget(targetId) {\n return {\n type: ADD_TARGET,\n payload: {\n targetId\n }\n };\n}\nexport function removeSource(sourceId) {\n return {\n type: REMOVE_SOURCE,\n payload: {\n sourceId\n }\n };\n}\nexport function removeTarget(targetId) {\n return {\n type: REMOVE_TARGET,\n payload: {\n targetId\n }\n };\n}\n\n//# sourceMappingURL=registry.js.map","import { invariant } from '@react-dnd/invariant';\nexport function validateSourceContract(source) {\n invariant(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');\n invariant(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');\n invariant(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');\n}\nexport function validateTargetContract(target) {\n invariant(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');\n invariant(typeof target.hover === 'function', 'Expected hover to be a function.');\n invariant(typeof target.drop === 'function', 'Expected beginDrag to be a function.');\n}\nexport function validateType(type, allowArray) {\n if (allowArray && Array.isArray(type)) {\n type.forEach((t)=>validateType(t, false)\n );\n return;\n }\n invariant(typeof type === 'string' || typeof type === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');\n}\n\n//# sourceMappingURL=contracts.js.map","export var HandlerRole;\n(function(HandlerRole) {\n HandlerRole[\"SOURCE\"] = \"SOURCE\";\n HandlerRole[\"TARGET\"] = \"TARGET\";\n})(HandlerRole || (HandlerRole = {}));\n\n//# sourceMappingURL=interfaces.js.map","let nextUniqueId = 0;\nexport function getNextUniqueId() {\n return nextUniqueId++;\n}\n\n//# sourceMappingURL=getNextUniqueId.js.map","import { asap } from '@react-dnd/asap';\nimport { invariant } from '@react-dnd/invariant';\nimport { addSource, addTarget, removeSource, removeTarget } from '../actions/registry.js';\nimport { validateSourceContract, validateTargetContract, validateType } from '../contracts.js';\nimport { HandlerRole } from '../interfaces.js';\nimport { getNextUniqueId } from '../utils/getNextUniqueId.js';\nfunction getNextHandlerId(role) {\n const id = getNextUniqueId().toString();\n switch(role){\n case HandlerRole.SOURCE:\n return `S${id}`;\n case HandlerRole.TARGET:\n return `T${id}`;\n default:\n throw new Error(`Unknown Handler Role: ${role}`);\n }\n}\nfunction parseRoleFromHandlerId(handlerId) {\n switch(handlerId[0]){\n case 'S':\n return HandlerRole.SOURCE;\n case 'T':\n return HandlerRole.TARGET;\n default:\n throw new Error(`Cannot parse handler ID: ${handlerId}`);\n }\n}\nfunction mapContainsValue(map, searchValue) {\n const entries = map.entries();\n let isDone = false;\n do {\n const { done , value: [, value] , } = entries.next();\n if (value === searchValue) {\n return true;\n }\n isDone = !!done;\n }while (!isDone)\n return false;\n}\nexport class HandlerRegistryImpl {\n addSource(type, source) {\n validateType(type);\n validateSourceContract(source);\n const sourceId = this.addHandler(HandlerRole.SOURCE, type, source);\n this.store.dispatch(addSource(sourceId));\n return sourceId;\n }\n addTarget(type, target) {\n validateType(type, true);\n validateTargetContract(target);\n const targetId = this.addHandler(HandlerRole.TARGET, type, target);\n this.store.dispatch(addTarget(targetId));\n return targetId;\n }\n containsHandler(handler) {\n return mapContainsValue(this.dragSources, handler) || mapContainsValue(this.dropTargets, handler);\n }\n getSource(sourceId, includePinned = false) {\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n const isPinned = includePinned && sourceId === this.pinnedSourceId;\n const source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId);\n return source;\n }\n getTarget(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.dropTargets.get(targetId);\n }\n getSourceType(sourceId) {\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n return this.types.get(sourceId);\n }\n getTargetType(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.types.get(targetId);\n }\n isSourceId(handlerId) {\n const role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.SOURCE;\n }\n isTargetId(handlerId) {\n const role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.TARGET;\n }\n removeSource(sourceId) {\n invariant(this.getSource(sourceId), 'Expected an existing source.');\n this.store.dispatch(removeSource(sourceId));\n asap(()=>{\n this.dragSources.delete(sourceId);\n this.types.delete(sourceId);\n });\n }\n removeTarget(targetId) {\n invariant(this.getTarget(targetId), 'Expected an existing target.');\n this.store.dispatch(removeTarget(targetId));\n this.dropTargets.delete(targetId);\n this.types.delete(targetId);\n }\n pinSource(sourceId) {\n const source = this.getSource(sourceId);\n invariant(source, 'Expected an existing source.');\n this.pinnedSourceId = sourceId;\n this.pinnedSource = source;\n }\n unpinSource() {\n invariant(this.pinnedSource, 'No source is pinned at the time.');\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n }\n addHandler(role, type, handler) {\n const id = getNextHandlerId(role);\n this.types.set(id, type);\n if (role === HandlerRole.SOURCE) {\n this.dragSources.set(id, handler);\n } else if (role === HandlerRole.TARGET) {\n this.dropTargets.set(id, handler);\n }\n return id;\n }\n constructor(store){\n this.types = new Map();\n this.dragSources = new Map();\n this.dropTargets = new Map();\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n this.store = store;\n }\n}\n\n//# sourceMappingURL=HandlerRegistryImpl.js.map","export const strictEquality = (a, b)=>a === b\n;\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */ export function areCoordsEqual(offsetA, offsetB) {\n if (!offsetA && !offsetB) {\n return true;\n } else if (!offsetA || !offsetB) {\n return false;\n } else {\n return offsetA.x === offsetB.x && offsetA.y === offsetB.y;\n }\n}\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */ export function areArraysEqual(a, b, isEqual = strictEquality) {\n if (a.length !== b.length) {\n return false;\n }\n for(let i = 0; i < a.length; ++i){\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n}\n\n//# sourceMappingURL=equality.js.map","import { BEGIN_DRAG, DROP, END_DRAG, HOVER, PUBLISH_DRAG_SOURCE } from '../actions/dragDrop/index.js';\nimport { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry.js';\nimport { ALL, NONE } from '../utils/dirtiness.js';\nimport { areArraysEqual } from '../utils/equality.js';\nimport { xor } from '../utils/js_utils.js';\nexport function reduce(// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_state = NONE, action) {\n switch(action.type){\n case HOVER:\n break;\n case ADD_SOURCE:\n case ADD_TARGET:\n case REMOVE_TARGET:\n case REMOVE_SOURCE:\n return NONE;\n case BEGIN_DRAG:\n case PUBLISH_DRAG_SOURCE:\n case END_DRAG:\n case DROP:\n default:\n return ALL;\n }\n const { targetIds =[] , prevTargetIds =[] } = action.payload;\n const result = xor(targetIds, prevTargetIds);\n const didChange = result.length > 0 || !areArraysEqual(targetIds, prevTargetIds);\n if (!didChange) {\n return NONE;\n }\n // Check the target ids at the innermost position. If they are valid, add them\n // to the result\n const prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];\n const innermostTargetId = targetIds[targetIds.length - 1];\n if (prevInnermostTargetId !== innermostTargetId) {\n if (prevInnermostTargetId) {\n result.push(prevInnermostTargetId);\n }\n if (innermostTargetId) {\n result.push(innermostTargetId);\n }\n }\n return result;\n}\n\n//# sourceMappingURL=dirtyHandlerIds.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nimport { BEGIN_DRAG, DROP, END_DRAG, HOVER, INIT_COORDS } from '../actions/dragDrop/index.js';\nimport { areCoordsEqual } from '../utils/equality.js';\nconst initialState = {\n initialSourceClientOffset: null,\n initialClientOffset: null,\n clientOffset: null\n};\nexport function reduce(state = initialState, action) {\n const { payload } = action;\n switch(action.type){\n case INIT_COORDS:\n case BEGIN_DRAG:\n return {\n initialSourceClientOffset: payload.sourceClientOffset,\n initialClientOffset: payload.clientOffset,\n clientOffset: payload.clientOffset\n };\n case HOVER:\n if (areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n return state;\n }\n return _objectSpread({}, state, {\n clientOffset: payload.clientOffset\n });\n case END_DRAG:\n case DROP:\n return initialState;\n default:\n return state;\n }\n}\n\n//# sourceMappingURL=dragOffset.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nimport { BEGIN_DRAG, DROP, END_DRAG, HOVER, PUBLISH_DRAG_SOURCE } from '../actions/dragDrop/index.js';\nimport { REMOVE_TARGET } from '../actions/registry.js';\nimport { without } from '../utils/js_utils.js';\nconst initialState = {\n itemType: null,\n item: null,\n sourceId: null,\n targetIds: [],\n dropResult: null,\n didDrop: false,\n isSourcePublic: null\n};\nexport function reduce(state = initialState, action) {\n const { payload } = action;\n switch(action.type){\n case BEGIN_DRAG:\n return _objectSpread({}, state, {\n itemType: payload.itemType,\n item: payload.item,\n sourceId: payload.sourceId,\n isSourcePublic: payload.isSourcePublic,\n dropResult: null,\n didDrop: false\n });\n case PUBLISH_DRAG_SOURCE:\n return _objectSpread({}, state, {\n isSourcePublic: true\n });\n case HOVER:\n return _objectSpread({}, state, {\n targetIds: payload.targetIds\n });\n case REMOVE_TARGET:\n if (state.targetIds.indexOf(payload.targetId) === -1) {\n return state;\n }\n return _objectSpread({}, state, {\n targetIds: without(state.targetIds, payload.targetId)\n });\n case DROP:\n return _objectSpread({}, state, {\n dropResult: payload.dropResult,\n didDrop: true,\n targetIds: []\n });\n case END_DRAG:\n return _objectSpread({}, state, {\n itemType: null,\n item: null,\n sourceId: null,\n dropResult: null,\n didDrop: false,\n isSourcePublic: null,\n targetIds: []\n });\n default:\n return state;\n }\n}\n\n//# sourceMappingURL=dragOperation.js.map","import { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry.js';\nexport function reduce(state = 0, action) {\n switch(action.type){\n case ADD_SOURCE:\n case ADD_TARGET:\n return state + 1;\n case REMOVE_SOURCE:\n case REMOVE_TARGET:\n return state - 1;\n default:\n return state;\n }\n}\n\n//# sourceMappingURL=refCount.js.map","export function reduce(state = 0) {\n return state + 1;\n}\n\n//# sourceMappingURL=stateId.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nimport { get } from '../utils/js_utils.js';\nimport { reduce as dirtyHandlerIds } from './dirtyHandlerIds.js';\nimport { reduce as dragOffset } from './dragOffset.js';\nimport { reduce as dragOperation } from './dragOperation.js';\nimport { reduce as refCount } from './refCount.js';\nimport { reduce as stateId } from './stateId.js';\nexport function reduce(state = {}, action) {\n return {\n dirtyHandlerIds: dirtyHandlerIds(state.dirtyHandlerIds, {\n type: action.type,\n payload: _objectSpread({}, action.payload, {\n prevTargetIds: get(state, 'dragOperation.targetIds', [])\n })\n }),\n dragOffset: dragOffset(state.dragOffset, action),\n refCount: refCount(state.refCount, action),\n dragOperation: dragOperation(state.dragOperation, action),\n stateId: stateId(state.stateId)\n };\n}\n\n//# sourceMappingURL=index.js.map","import { createStore } from 'redux';\nimport { DragDropManagerImpl } from './classes/DragDropManagerImpl.js';\nimport { DragDropMonitorImpl } from './classes/DragDropMonitorImpl.js';\nimport { HandlerRegistryImpl } from './classes/HandlerRegistryImpl.js';\nimport { reduce } from './reducers/index.js';\nexport function createDragDropManager(backendFactory, globalContext = undefined, backendOptions = {}, debugMode = false) {\n const store = makeStoreInstance(debugMode);\n const monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store));\n const manager = new DragDropManagerImpl(store, monitor);\n const backend = backendFactory(manager, globalContext, backendOptions);\n manager.receiveBackend(backend);\n return manager;\n}\nfunction makeStoreInstance(debugMode) {\n // TODO: if we ever make a react-native version of this,\n // we'll need to consider how to pull off dev-tooling\n const reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;\n return createStore(reduce, debugMode && reduxDevTools && reduxDevTools({\n name: 'dnd-core',\n instanceId: 'dnd-core'\n }));\n}\n\n//# sourceMappingURL=createDragDropManager.js.map","function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for(i = 0; i < sourceSymbolKeys.length; i++){\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createDragDropManager } from 'dnd-core';\nimport { memo, useEffect } from 'react';\nimport { DndContext } from './DndContext.js';\nlet refCount = 0;\nconst INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');\nvar DndProvider = /*#__PURE__*/ memo(function DndProvider(_param) {\n var { children } = _param, props = _objectWithoutProperties(_param, [\n \"children\"\n ]);\n const [manager, isGlobalInstance] = getDndContextValue(props) // memoized from props\n ;\n /**\n\t\t * If the global context was used to store the DND context\n\t\t * then where theres no more references to it we should\n\t\t * clean it up to avoid memory leaks\n\t\t */ useEffect(()=>{\n if (isGlobalInstance) {\n const context = getGlobalContext();\n ++refCount;\n return ()=>{\n if (--refCount === 0) {\n context[INSTANCE_SYM] = null;\n }\n };\n }\n return;\n }, []);\n return /*#__PURE__*/ _jsx(DndContext.Provider, {\n value: manager,\n children: children\n });\n});\n/**\n * A React component that provides the React-DnD context\n */ export { DndProvider, };\nfunction getDndContextValue(props) {\n if ('manager' in props) {\n const manager = {\n dragDropManager: props.manager\n };\n return [\n manager,\n false\n ];\n }\n const manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);\n const isGlobalInstance = !props.context;\n return [\n manager,\n isGlobalInstance\n ];\n}\nfunction createSingletonDndContext(backend, context = getGlobalContext(), options, debugMode) {\n const ctx = context;\n if (!ctx[INSTANCE_SYM]) {\n ctx[INSTANCE_SYM] = {\n dragDropManager: createDragDropManager(backend, context, options, debugMode)\n };\n }\n return ctx[INSTANCE_SYM];\n}\nfunction getGlobalContext() {\n return typeof global !== 'undefined' ? global : window;\n}\n\n//# sourceMappingURL=DndProvider.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import { useEffect, useLayoutEffect } from 'react';\n// suppress the useLayoutEffect warning on server side.\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import equal from 'fast-deep-equal';\nimport { useCallback, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js';\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */ export function useCollector(monitor, collect, onUpdate) {\n const [collected, setCollected] = useState(()=>collect(monitor)\n );\n const updateCollected = useCallback(()=>{\n const nextValue = collect(monitor);\n // This needs to be a deep-equality check because some monitor-collected values\n // include XYCoord objects that may be equivalent, but do not have instance equality.\n if (!equal(collected, nextValue)) {\n setCollected(nextValue);\n if (onUpdate) {\n onUpdate();\n }\n }\n }, [\n collected,\n monitor,\n onUpdate\n ]);\n // update the collected properties after react renders.\n // Note that the \"Dustbin Stress Test\" fails if this is not\n // done when the component updates\n useIsomorphicLayoutEffect(updateCollected);\n return [\n collected,\n updateCollected\n ];\n}\n\n//# sourceMappingURL=useCollector.js.map","import { useCollector } from './useCollector.js';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js';\nexport function useMonitorOutput(monitor, collect, onCollect) {\n const [collected, updateCollected] = useCollector(monitor, collect, onCollect);\n useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() {\n const handlerId = monitor.getHandlerId();\n if (handlerId == null) {\n return;\n }\n return monitor.subscribeToStateChange(updateCollected, {\n handlerIds: [\n handlerId\n ]\n });\n }, [\n monitor,\n updateCollected\n ]);\n return collected;\n}\n\n//# sourceMappingURL=useMonitorOutput.js.map","import { useMonitorOutput } from './useMonitorOutput.js';\nexport function useCollectedProps(collector, monitor, connector) {\n return useMonitorOutput(monitor, collector || (()=>({})\n ), ()=>connector.reconnect()\n );\n}\n\n//# sourceMappingURL=useCollectedProps.js.map","import { useMemo } from 'react';\nexport function useOptionalFactory(arg, deps) {\n const memoDeps = [\n ...deps || []\n ];\n if (deps == null && typeof arg !== 'function') {\n memoDeps.push(arg);\n }\n return useMemo(()=>{\n return typeof arg === 'function' ? arg() : arg;\n }, memoDeps);\n}\n\n//# sourceMappingURL=useOptionalFactory.js.map","import { useMemo } from 'react';\nexport function useConnectDragSource(connector) {\n return useMemo(()=>connector.hooks.dragSource()\n , [\n connector\n ]);\n}\nexport function useConnectDragPreview(connector) {\n return useMemo(()=>connector.hooks.dragPreview()\n , [\n connector\n ]);\n}\n\n//# sourceMappingURL=connectors.js.map","import { invariant } from '@react-dnd/invariant';\nlet isCallingCanDrag = false;\nlet isCallingIsDragging = false;\nexport class DragSourceMonitorImpl {\n receiveHandlerId(sourceId) {\n this.sourceId = sourceId;\n }\n getHandlerId() {\n return this.sourceId;\n }\n canDrag() {\n invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n try {\n isCallingCanDrag = true;\n return this.internalMonitor.canDragSource(this.sourceId);\n } finally{\n isCallingCanDrag = false;\n }\n }\n isDragging() {\n if (!this.sourceId) {\n return false;\n }\n invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n try {\n isCallingIsDragging = true;\n return this.internalMonitor.isDraggingSource(this.sourceId);\n } finally{\n isCallingIsDragging = false;\n }\n }\n subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n isDraggingSource(sourceId) {\n return this.internalMonitor.isDraggingSource(sourceId);\n }\n isOverTarget(targetId, options) {\n return this.internalMonitor.isOverTarget(targetId, options);\n }\n getTargetIds() {\n return this.internalMonitor.getTargetIds();\n }\n isSourcePublic() {\n return this.internalMonitor.isSourcePublic();\n }\n getSourceId() {\n return this.internalMonitor.getSourceId();\n }\n subscribeToOffsetChange(listener) {\n return this.internalMonitor.subscribeToOffsetChange(listener);\n }\n canDragSource(sourceId) {\n return this.internalMonitor.canDragSource(sourceId);\n }\n canDropOnTarget(targetId) {\n return this.internalMonitor.canDropOnTarget(targetId);\n }\n getItemType() {\n return this.internalMonitor.getItemType();\n }\n getItem() {\n return this.internalMonitor.getItem();\n }\n getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n didDrop() {\n return this.internalMonitor.didDrop();\n }\n getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n constructor(manager){\n this.sourceId = null;\n this.internalMonitor = manager.getMonitor();\n }\n}\n\n//# sourceMappingURL=DragSourceMonitorImpl.js.map","import { invariant } from '@react-dnd/invariant';\nlet isCallingCanDrop = false;\nexport class DropTargetMonitorImpl {\n receiveHandlerId(targetId) {\n this.targetId = targetId;\n }\n getHandlerId() {\n return this.targetId;\n }\n subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n canDrop() {\n // Cut out early if the target id has not been set. This should prevent errors\n // where the user has an older version of dnd-core like in\n // https://github.com/react-dnd/react-dnd/issues/1310\n if (!this.targetId) {\n return false;\n }\n invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');\n try {\n isCallingCanDrop = true;\n return this.internalMonitor.canDropOnTarget(this.targetId);\n } finally{\n isCallingCanDrop = false;\n }\n }\n isOver(options) {\n if (!this.targetId) {\n return false;\n }\n return this.internalMonitor.isOverTarget(this.targetId, options);\n }\n getItemType() {\n return this.internalMonitor.getItemType();\n }\n getItem() {\n return this.internalMonitor.getItem();\n }\n getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n didDrop() {\n return this.internalMonitor.didDrop();\n }\n getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n constructor(manager){\n this.targetId = null;\n this.internalMonitor = manager.getMonitor();\n }\n}\n\n//# sourceMappingURL=DropTargetMonitorImpl.js.map","export function registerTarget(type, target, manager) {\n const registry = manager.getRegistry();\n const targetId = registry.addTarget(type, target);\n return [\n targetId,\n ()=>registry.removeTarget(targetId)\n ];\n}\nexport function registerSource(type, source, manager) {\n const registry = manager.getRegistry();\n const sourceId = registry.addSource(type, source);\n return [\n sourceId,\n ()=>registry.removeSource(sourceId)\n ];\n}\n\n//# sourceMappingURL=registration.js.map","export function shallowEqual(objA, objB, compare, compareContext) {\n let compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;\n if (compareResult !== void 0) {\n return !!compareResult;\n }\n if (objA === objB) {\n return true;\n }\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n // Test for A's keys different from B.\n for(let idx = 0; idx < keysA.length; idx++){\n const key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n const valueA = objA[key];\n const valueB = objB[key];\n compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n if (compareResult === false || compareResult === void 0 && valueA !== valueB) {\n return false;\n }\n }\n return true;\n}\n\n//# sourceMappingURL=index.js.map","export function isRef(obj) {\n return(// eslint-disable-next-line no-prototype-builtins\n obj !== null && typeof obj === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current'));\n}\n\n//# sourceMappingURL=isRef.js.map","import { invariant } from '@react-dnd/invariant';\nimport { cloneElement, isValidElement } from 'react';\nfunction throwIfCompositeComponentElement(element) {\n // Custom components can no longer be wrapped directly in React DnD 2.0\n // so that we don't need to depend on findDOMNode() from react-dom.\n if (typeof element.type === 'string') {\n return;\n }\n const displayName = element.type.displayName || element.type.name || 'the component';\n throw new Error('Only native element nodes can now be passed to React DnD connectors.' + `You can either wrap ${displayName} into a <div>, or turn it into a ` + 'drag source or a drop target itself.');\n}\nfunction wrapHookToRecognizeElement(hook) {\n return (elementOrNode = null, options = null)=>{\n // When passed a node, call the hook straight away.\n if (!isValidElement(elementOrNode)) {\n const node = elementOrNode;\n hook(node, options);\n // return the node so it can be chained (e.g. when within callback refs\n // <div ref={node => connectDragSource(connectDropTarget(node))}/>\n return node;\n }\n // If passed a ReactElement, clone it and attach this function as a ref.\n // This helps us achieve a neat API where user doesn't even know that refs\n // are being used under the hood.\n const element = elementOrNode;\n throwIfCompositeComponentElement(element);\n // When no options are passed, use the hook directly\n const ref = options ? (node)=>hook(node, options)\n : hook;\n return cloneWithRef(element, ref);\n };\n}\nexport function wrapConnectorHooks(hooks) {\n const wrappedHooks = {};\n Object.keys(hooks).forEach((key)=>{\n const hook = hooks[key];\n // ref objects should be passed straight through without wrapping\n if (key.endsWith('Ref')) {\n wrappedHooks[key] = hooks[key];\n } else {\n const wrappedHook = wrapHookToRecognizeElement(hook);\n wrappedHooks[key] = ()=>wrappedHook\n ;\n }\n });\n return wrappedHooks;\n}\nfunction setRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n}\nfunction cloneWithRef(element, newRef) {\n const previousRef = element.ref;\n invariant(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' + 'Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs');\n if (!previousRef) {\n // When there is no ref on the element, use the new ref directly\n return cloneElement(element, {\n ref: newRef\n });\n } else {\n return cloneElement(element, {\n ref: (node)=>{\n setRef(previousRef, node);\n setRef(newRef, node);\n }\n });\n }\n}\n\n//# sourceMappingURL=wrapConnectorHooks.js.map","import { shallowEqual } from '@react-dnd/shallowequal';\nimport { isRef } from './isRef.js';\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js';\nexport class SourceConnector {\n receiveHandlerId(newHandlerId) {\n if (this.handlerId === newHandlerId) {\n return;\n }\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n get connectTarget() {\n return this.dragSource;\n }\n get dragSourceOptions() {\n return this.dragSourceOptionsInternal;\n }\n set dragSourceOptions(options) {\n this.dragSourceOptionsInternal = options;\n }\n get dragPreviewOptions() {\n return this.dragPreviewOptionsInternal;\n }\n set dragPreviewOptions(options) {\n this.dragPreviewOptionsInternal = options;\n }\n reconnect() {\n const didChange = this.reconnectDragSource();\n this.reconnectDragPreview(didChange);\n }\n reconnectDragSource() {\n const dragSource = this.dragSource;\n // if nothing has changed then don't resubscribe\n const didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();\n if (didChange) {\n this.disconnectDragSource();\n }\n if (!this.handlerId) {\n return didChange;\n }\n if (!dragSource) {\n this.lastConnectedDragSource = dragSource;\n return didChange;\n }\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragSource = dragSource;\n this.lastConnectedDragSourceOptions = this.dragSourceOptions;\n this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);\n }\n return didChange;\n }\n reconnectDragPreview(forceDidChange = false) {\n const dragPreview = this.dragPreview;\n // if nothing has changed then don't resubscribe\n const didChange = forceDidChange || this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();\n if (didChange) {\n this.disconnectDragPreview();\n }\n if (!this.handlerId) {\n return;\n }\n if (!dragPreview) {\n this.lastConnectedDragPreview = dragPreview;\n return;\n }\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragPreview = dragPreview;\n this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;\n this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);\n }\n }\n didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n didConnectedDragSourceChange() {\n return this.lastConnectedDragSource !== this.dragSource;\n }\n didConnectedDragPreviewChange() {\n return this.lastConnectedDragPreview !== this.dragPreview;\n }\n didDragSourceOptionsChange() {\n return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions);\n }\n didDragPreviewOptionsChange() {\n return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);\n }\n disconnectDragSource() {\n if (this.dragSourceUnsubscribe) {\n this.dragSourceUnsubscribe();\n this.dragSourceUnsubscribe = undefined;\n }\n }\n disconnectDragPreview() {\n if (this.dragPreviewUnsubscribe) {\n this.dragPreviewUnsubscribe();\n this.dragPreviewUnsubscribe = undefined;\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }\n get dragSource() {\n return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;\n }\n get dragPreview() {\n return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;\n }\n clearDragSource() {\n this.dragSourceNode = null;\n this.dragSourceRef = null;\n }\n clearDragPreview() {\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n constructor(backend){\n this.hooks = wrapConnectorHooks({\n dragSource: (node, options)=>{\n this.clearDragSource();\n this.dragSourceOptions = options || null;\n if (isRef(node)) {\n this.dragSourceRef = node;\n } else {\n this.dragSourceNode = node;\n }\n this.reconnectDragSource();\n },\n dragPreview: (node, options)=>{\n this.clearDragPreview();\n this.dragPreviewOptions = options || null;\n if (isRef(node)) {\n this.dragPreviewRef = node;\n } else {\n this.dragPreviewNode = node;\n }\n this.reconnectDragPreview();\n }\n });\n this.handlerId = null;\n // The drop target may either be attached via ref or connect function\n this.dragSourceRef = null;\n this.dragSourceOptionsInternal = null;\n // The drag preview may either be attached via ref or connect function\n this.dragPreviewRef = null;\n this.dragPreviewOptionsInternal = null;\n this.lastConnectedHandlerId = null;\n this.lastConnectedDragSource = null;\n this.lastConnectedDragSourceOptions = null;\n this.lastConnectedDragPreview = null;\n this.lastConnectedDragPreviewOptions = null;\n this.backend = backend;\n }\n}\n\n//# sourceMappingURL=SourceConnector.js.map","import { shallowEqual } from '@react-dnd/shallowequal';\nimport { isRef } from './isRef.js';\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js';\nexport class TargetConnector {\n get connectTarget() {\n return this.dropTarget;\n }\n reconnect() {\n // if nothing has changed then don't resubscribe\n const didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();\n if (didChange) {\n this.disconnectDropTarget();\n }\n const dropTarget = this.dropTarget;\n if (!this.handlerId) {\n return;\n }\n if (!dropTarget) {\n this.lastConnectedDropTarget = dropTarget;\n return;\n }\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDropTarget = dropTarget;\n this.lastConnectedDropTargetOptions = this.dropTargetOptions;\n this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);\n }\n }\n receiveHandlerId(newHandlerId) {\n if (newHandlerId === this.handlerId) {\n return;\n }\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n get dropTargetOptions() {\n return this.dropTargetOptionsInternal;\n }\n set dropTargetOptions(options) {\n this.dropTargetOptionsInternal = options;\n }\n didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n didDropTargetChange() {\n return this.lastConnectedDropTarget !== this.dropTarget;\n }\n didOptionsChange() {\n return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions);\n }\n disconnectDropTarget() {\n if (this.unsubscribeDropTarget) {\n this.unsubscribeDropTarget();\n this.unsubscribeDropTarget = undefined;\n }\n }\n get dropTarget() {\n return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;\n }\n clearDropTarget() {\n this.dropTargetRef = null;\n this.dropTargetNode = null;\n }\n constructor(backend){\n this.hooks = wrapConnectorHooks({\n dropTarget: (node, options)=>{\n this.clearDropTarget();\n this.dropTargetOptions = options;\n if (isRef(node)) {\n this.dropTargetRef = node;\n } else {\n this.dropTargetNode = node;\n }\n this.reconnect();\n }\n });\n this.handlerId = null;\n // The drop target may either be attached via ref or connect function\n this.dropTargetRef = null;\n this.dropTargetOptionsInternal = null;\n this.lastConnectedHandlerId = null;\n this.lastConnectedDropTarget = null;\n this.lastConnectedDropTargetOptions = null;\n this.backend = backend;\n }\n}\n\n//# sourceMappingURL=TargetConnector.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useContext } from 'react';\nimport { DndContext } from '../core/index.js';\n/**\n * A hook to retrieve the DragDropManager from Context\n */ export function useDragDropManager() {\n const { dragDropManager } = useContext(DndContext);\n invariant(dragDropManager != null, 'Expected drag drop context');\n return dragDropManager;\n}\n\n//# sourceMappingURL=useDragDropManager.js.map","import { useMemo } from 'react';\nimport { SourceConnector } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nexport function useDragSourceConnector(dragSourceOptions, dragPreviewOptions) {\n const manager = useDragDropManager();\n const connector = useMemo(()=>new SourceConnector(manager.getBackend())\n , [\n manager\n ]);\n useIsomorphicLayoutEffect(()=>{\n connector.dragSourceOptions = dragSourceOptions || null;\n connector.reconnect();\n return ()=>connector.disconnectDragSource()\n ;\n }, [\n connector,\n dragSourceOptions\n ]);\n useIsomorphicLayoutEffect(()=>{\n connector.dragPreviewOptions = dragPreviewOptions || null;\n connector.reconnect();\n return ()=>connector.disconnectDragPreview()\n ;\n }, [\n connector,\n dragPreviewOptions\n ]);\n return connector;\n}\n\n//# sourceMappingURL=useDragSourceConnector.js.map","import { useMemo } from 'react';\nimport { DragSourceMonitorImpl } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nexport function useDragSourceMonitor() {\n const manager = useDragDropManager();\n return useMemo(()=>new DragSourceMonitorImpl(manager)\n , [\n manager\n ]);\n}\n\n//# sourceMappingURL=useDragSourceMonitor.js.map","export class DragSourceImpl {\n beginDrag() {\n const spec = this.spec;\n const monitor = this.monitor;\n let result = null;\n if (typeof spec.item === 'object') {\n result = spec.item;\n } else if (typeof spec.item === 'function') {\n result = spec.item(monitor);\n } else {\n result = {};\n }\n return result !== null && result !== void 0 ? result : null;\n }\n canDrag() {\n const spec = this.spec;\n const monitor = this.monitor;\n if (typeof spec.canDrag === 'boolean') {\n return spec.canDrag;\n } else if (typeof spec.canDrag === 'function') {\n return spec.canDrag(monitor);\n } else {\n return true;\n }\n }\n isDragging(globalMonitor, target) {\n const spec = this.spec;\n const monitor = this.monitor;\n const { isDragging } = spec;\n return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId();\n }\n endDrag() {\n const spec = this.spec;\n const monitor = this.monitor;\n const connector = this.connector;\n const { end } = spec;\n if (end) {\n end(monitor.getItem(), monitor);\n }\n connector.reconnect();\n }\n constructor(spec, monitor, connector){\n this.spec = spec;\n this.monitor = monitor;\n this.connector = connector;\n }\n}\n\n//# sourceMappingURL=DragSourceImpl.js.map","import { useEffect, useMemo } from 'react';\nimport { DragSourceImpl } from './DragSourceImpl.js';\nexport function useDragSource(spec, monitor, connector) {\n const handler = useMemo(()=>new DragSourceImpl(spec, monitor, connector)\n , [\n monitor,\n connector\n ]);\n useEffect(()=>{\n handler.spec = spec;\n }, [\n spec\n ]);\n return handler;\n}\n\n//# sourceMappingURL=useDragSource.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useMemo } from 'react';\nexport function useDragType(spec) {\n return useMemo(()=>{\n const result = spec.type;\n invariant(result != null, 'spec.type must be defined');\n return result;\n }, [\n spec\n ]);\n}\n\n//# sourceMappingURL=useDragType.js.map","import { registerSource } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nimport { useDragSource } from './useDragSource.js';\nimport { useDragType } from './useDragType.js';\nexport function useRegisteredDragSource(spec, monitor, connector) {\n const manager = useDragDropManager();\n const handler = useDragSource(spec, monitor, connector);\n const itemType = useDragType(spec);\n useIsomorphicLayoutEffect(function registerDragSource() {\n if (itemType != null) {\n const [handlerId, unregister] = registerSource(itemType, handler, manager);\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }\n return;\n }, [\n manager,\n monitor,\n connector,\n handler,\n itemType\n ]);\n}\n\n//# sourceMappingURL=useRegisteredDragSource.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useCollectedProps } from '../useCollectedProps.js';\nimport { useOptionalFactory } from '../useOptionalFactory.js';\nimport { useConnectDragPreview, useConnectDragSource } from './connectors.js';\nimport { useDragSourceConnector } from './useDragSourceConnector.js';\nimport { useDragSourceMonitor } from './useDragSourceMonitor.js';\nimport { useRegisteredDragSource } from './useRegisteredDragSource.js';\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */ export function useDrag(specArg, deps) {\n const spec = useOptionalFactory(specArg, deps);\n invariant(!spec.begin, `useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)`);\n const monitor = useDragSourceMonitor();\n const connector = useDragSourceConnector(spec.options, spec.previewOptions);\n useRegisteredDragSource(spec, monitor, connector);\n return [\n useCollectedProps(spec.collect, monitor, connector),\n useConnectDragSource(connector),\n useConnectDragPreview(connector), \n ];\n}\n\n//# sourceMappingURL=useDrag.js.map","import { useMemo } from 'react';\nexport function useConnectDropTarget(connector) {\n return useMemo(()=>connector.hooks.dropTarget()\n , [\n connector\n ]);\n}\n\n//# sourceMappingURL=connectors.js.map","import { useMemo } from 'react';\nimport { TargetConnector } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nexport function useDropTargetConnector(options) {\n const manager = useDragDropManager();\n const connector = useMemo(()=>new TargetConnector(manager.getBackend())\n , [\n manager\n ]);\n useIsomorphicLayoutEffect(()=>{\n connector.dropTargetOptions = options || null;\n connector.reconnect();\n return ()=>connector.disconnectDropTarget()\n ;\n }, [\n options\n ]);\n return connector;\n}\n\n//# sourceMappingURL=useDropTargetConnector.js.map","import { useMemo } from 'react';\nimport { DropTargetMonitorImpl } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nexport function useDropTargetMonitor() {\n const manager = useDragDropManager();\n return useMemo(()=>new DropTargetMonitorImpl(manager)\n , [\n manager\n ]);\n}\n\n//# sourceMappingURL=useDropTargetMonitor.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useMemo } from 'react';\n/**\n * Internal utility hook to get an array-version of spec.accept.\n * The main utility here is that we aren't creating a new array on every render if a non-array spec.accept is passed in.\n * @param spec\n */ export function useAccept(spec) {\n const { accept } = spec;\n return useMemo(()=>{\n invariant(spec.accept != null, 'accept must be defined');\n return Array.isArray(accept) ? accept : [\n accept\n ];\n }, [\n accept\n ]);\n}\n\n//# sourceMappingURL=useAccept.js.map","export class DropTargetImpl {\n canDrop() {\n const spec = this.spec;\n const monitor = this.monitor;\n return spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true;\n }\n hover() {\n const spec = this.spec;\n const monitor = this.monitor;\n if (spec.hover) {\n spec.hover(monitor.getItem(), monitor);\n }\n }\n drop() {\n const spec = this.spec;\n const monitor = this.monitor;\n if (spec.drop) {\n return spec.drop(monitor.getItem(), monitor);\n }\n return;\n }\n constructor(spec, monitor){\n this.spec = spec;\n this.monitor = monitor;\n }\n}\n\n//# sourceMappingURL=DropTargetImpl.js.map","import { useEffect, useMemo } from 'react';\nimport { DropTargetImpl } from './DropTargetImpl.js';\nexport function useDropTarget(spec, monitor) {\n const dropTarget = useMemo(()=>new DropTargetImpl(spec, monitor)\n , [\n monitor\n ]);\n useEffect(()=>{\n dropTarget.spec = spec;\n }, [\n spec\n ]);\n return dropTarget;\n}\n\n//# sourceMappingURL=useDropTarget.js.map","import { registerTarget } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nimport { useAccept } from './useAccept.js';\nimport { useDropTarget } from './useDropTarget.js';\nexport function useRegisteredDropTarget(spec, monitor, connector) {\n const manager = useDragDropManager();\n const dropTarget = useDropTarget(spec, monitor);\n const accept = useAccept(spec);\n useIsomorphicLayoutEffect(function registerDropTarget() {\n const [handlerId, unregister] = registerTarget(accept, dropTarget, manager);\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }, [\n manager,\n monitor,\n dropTarget,\n connector,\n accept.map((a)=>a.toString()\n ).join('|'), \n ]);\n}\n\n//# sourceMappingURL=useRegisteredDropTarget.js.map","import { useCollectedProps } from '../useCollectedProps.js';\nimport { useOptionalFactory } from '../useOptionalFactory.js';\nimport { useConnectDropTarget } from './connectors.js';\nimport { useDropTargetConnector } from './useDropTargetConnector.js';\nimport { useDropTargetMonitor } from './useDropTargetMonitor.js';\nimport { useRegisteredDropTarget } from './useRegisteredDropTarget.js';\n/**\n * useDropTarget Hook\n * @param spec The drop target specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */ export function useDrop(specArg, deps) {\n const spec = useOptionalFactory(specArg, deps);\n const monitor = useDropTargetMonitor();\n const connector = useDropTargetConnector(spec.options);\n useRegisteredDropTarget(spec, monitor, connector);\n return [\n useCollectedProps(spec.collect, monitor, connector),\n useConnectDropTarget(connector), \n ];\n}\n\n//# sourceMappingURL=useDrop.js.map","import React from \"react\";\nimport { Engine, GraphedFunction } from \"../Engine\";\nimport { WidgetProps } from \"./Components/Control\";\nimport { Prompts } from \"./types\";\n\nconst dummyEngine = new Engine();\n\ntype FlowContextState = {\n engine: Engine;\n graphedFn: GraphedFunction;\n controls?: Record<string, React.ComponentType<WidgetProps<any>>>;\n prompts?: Prompts;\n};\n\nexport const FlowContext = React.createContext<FlowContextState>({\n graphedFn: {} as GraphedFunction,\n engine: dummyEngine,\n});\n\nexport const useEngine = () => {\n return React.useContext(FlowContext).engine;\n};\n\nconst empty = {};\nexport const useControls = () => {\n return React.useContext(FlowContext).controls || empty;\n};\n\nexport const useGraphedFunction = () => {\n return React.useContext(FlowContext).graphedFn;\n};\n\nexport const usePrompts = () => {\n let prompts = React.useContext(FlowContext).prompts;\n return {\n confirm,\n prompt,\n alert,\n ...prompts,\n };\n};\n","import React from \"react\";\nimport rcin from \"rc-input-number\";\nimport { NormalizedVarDef } from \"../../Engine\";\nimport { useControls } from \"../Context\";\n\nimport styles from \"./NodeComponents.module.css\";\n\n// normalizing import\nconst InputNumber = (rcin as any).default ?? rcin;\n\nconst InputString = React.memo(\n ({\n value,\n onChange,\n }: {\n value: string;\n onChange?: (value: string) => void;\n }) => {\n return (\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n />\n );\n }\n);\n\nexport interface WidgetProps<T> {\n value: T;\n vardef: NormalizedVarDef;\n onChange?: (value: T) => void;\n}\n\ninterface ControlProps {\n value: any;\n vardef: NormalizedVarDef;\n onChange?: (value: any) => void;\n}\nexport function Control({ value, vardef, onChange }: ControlProps) {\n const customControls = useControls();\n if (vardef.type in customControls) {\n const ControlComponent = customControls[\n vardef.type\n ] as React.ComponentType<WidgetProps<any>>;\n return (\n <ControlComponent\n value={value}\n vardef={vardef}\n onChange={onChange}\n />\n );\n }\n if (vardef.options) {\n return (\n <select\n value={value || \"\"}\n onChange={(e) => onChange?.(e.target.value)}\n >\n {vardef.options.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n );\n }\n switch (vardef.type) {\n case \"string\":\n return <InputString value={value ?? \"\"} onChange={onChange} />;\n case \"number\":\n return (\n <InputNumber\n value={Number(value) || 0}\n onChange={onChange}\n step={vardef.step}\n min={vardef.min}\n max={vardef.max}\n inputMode=\"numeric\"\n />\n );\n case \"boolean\":\n return (\n <input\n type=\"checkbox\"\n checked={Boolean(value)}\n onChange={(e) => onChange?.(e.target.checked)}\n />\n );\n default:\n return (\n <span className={styles.PortLabel}>\n {String(value)} ({vardef.type})\n </span>\n );\n }\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { Handle, Position } from \"@xyflow/react\";\n\nimport { normalizeVarDef, VarDef } from \"../../Engine\";\nimport { isReference } from \"../../Engine/util\";\nimport { Control } from \"./Control\";\nimport { FunctionNode } from \"../types\";\n\nimport styles from \"./NodeComponents.module.css\";\n\ninterface InputProps {\n name: string;\n varDef: VarDef;\n id: string;\n data: FunctionNode[\"data\"];\n onClick?: (e: React.MouseEvent) => void;\n}\nexport const Input = ({ name, varDef, id, data, onClick }: InputProps) => {\n const normalized = normalizeVarDef(varDef);\n const value = data.inputs?.[name];\n const isRef = isReference(value);\n\n const handleInputChange = (param: string) => (value: any) => {\n data.onChange({\n inputs: {\n ...data.inputs,\n [param]: value,\n },\n });\n };\n\n return (\n <Handle\n type=\"target\"\n position={Position.Left}\n id={`${id}-${name}`}\n className={classNames(\n styles.Input,\n styles.Port,\n styles[`type-${normalized.type}`]\n )}\n style={\n {\n \"--type-color\": `var(--color-${normalized.type})`,\n } as any\n }\n onClick={onClick}\n >\n <span className={styles.PortLabel}>{normalized.label || name}</span>\n {!isRef && (\n <Control\n vardef={normalized}\n value={value}\n onChange={handleInputChange(name)}\n />\n )}\n </Handle>\n );\n};\n","import React from \"react\";\nimport classNames from \"classnames\";\n\nimport { normalizeVarDef, VarDef } from \"../../Engine\";\nimport { isReference } from \"../../Engine/util\";\nimport { Control } from \"./Control\";\nimport { FunctionNode } from \"../types\";\n\nimport styles from \"./NodeComponents.module.css\";\n\ninterface ParamProps {\n id: string;\n name: string;\n varDef: VarDef;\n data: FunctionNode[\"data\"];\n onClick?: (e: React.MouseEvent) => void;\n}\nexport const Param = ({ id, name, varDef, data, onClick }: ParamProps) => {\n const normalized = normalizeVarDef(varDef);\n const value = data.params?.[name];\n const isRef = isReference(value);\n\n const handleParamChange = (param: string) => (value: any) => {\n data.onChange({\n params: {\n ...data.params,\n [param]: value,\n },\n });\n };\n\n return (\n <div\n className={classNames(\n styles.Param,\n styles.Port,\n styles[`type-${normalized.type}`]\n )}\n style={\n {\n \"--type-color\": `var(--color-${normalized.type})`,\n } as any\n }\n onClick={onClick}\n >\n <span className={styles.PortLabel}>{normalized.label || name}</span>\n {!isRef && (\n <Control\n vardef={normalized}\n value={value}\n onChange={handleParamChange(name)}\n />\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { Handle, Position } from \"@xyflow/react\";\n\nimport { normalizeVarDef, VarDef } from \"../../Engine\";\n\nimport styles from \"./NodeComponents.module.css\";\n\ninterface OutputProps {\n name: string;\n varDef: VarDef;\n id: string;\n onClick?: (e: React.MouseEvent) => void;\n focus?: boolean;\n}\nexport const Output = ({ name, varDef, id, onClick, focus }: OutputProps) => {\n const normalized = normalizeVarDef(varDef);\n\n return (\n <Handle\n type=\"source\"\n position={Position.Right}\n id={`${id}-${name}`}\n className={classNames(\n styles.Output,\n styles.Port,\n styles[`type-${normalized.type}`]\n )}\n style={\n {\n \"--type-color\": `var(--color-${normalized.type})`,\n } as any\n }\n onClick={onClick}\n >\n <span className={styles.PortLabel}>\n {focus && \"👁 \"}\n {normalized.label || name}\n </span>\n </Handle>\n );\n};\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { useLongPress } from \"use-long-press\";\n\nimport { useEngine } from \"../Context\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\nimport { useReactFlow, useStore, useStoreApi } from \"@xyflow/react\";\n\ninterface NodeContainerProps {\n id?: string;\n label: string;\n className?: string;\n selected?: boolean;\n children?: React.ReactNode;\n noDelete?: boolean;\n}\nexport function NodeContainer({\n id,\n label,\n className,\n selected,\n children,\n noDelete,\n}: NodeContainerProps) {\n const engine = useEngine();\n const [active, setActive] = React.useState(false);\n const [deleteMode, setDeleteMode] = React.useState(false);\n const instance = useReactFlow();\n\n React.useEffect(() => {\n if (!selected) {\n setDeleteMode(false);\n }\n }, [selected]);\n\n React.useEffect(() => {\n if (!id) return;\n let timer;\n let removeOnCall = engine.subscribe(\"functionCall\", (event) => {\n if (event.name === id) {\n setActive(true);\n }\n });\n let removeOnResult = engine.subscribe(\"functionResult\", (event) => {\n if (event.name === id) {\n clearTimeout(timer);\n timer = setTimeout(\n () => setActive(false),\n Math.max(0, 1000 - (event.duration || 0))\n );\n }\n });\n return () => {\n removeOnCall();\n removeOnResult();\n };\n }, [id]);\n\n const handlers = useLongPress(() => {\n if (!noDelete) {\n setDeleteMode(true);\n }\n });\n\n const handleDelete = () => {\n instance.deleteElements({ nodes: [{ id: id! }] });\n };\n\n return (\n <div\n className={classNames(className, styles.NodeContainer, {\n [styles.selected]: selected,\n [styles.active]: active,\n })}\n >\n <div className={styles.Label} {...handlers()}>\n <span></span>\n {label}\n <span>\n {deleteMode && (\n <button\n className={styles.DeleteButton}\n onClick={handleDelete}\n >\n ✕\n </button>\n )}\n </span>\n </div>\n {children}\n </div>\n );\n}\n","import React from \"react\";\nimport { Handle, NodeProps, Position } from \"@xyflow/react\";\nimport classNames from \"classnames\";\n\nimport { NodeContainer } from \"../Components/NodeContainer\";\nimport { FunctionNode } from \"../types\";\nimport { useEngine } from \"../Context\";\nimport { Tree } from \"../../DataTree\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\n\ninterface TreeTableProps {\n value: Tree<any> | null;\n}\nfunction TreeTable({ value }: TreeTableProps) {\n return (\n <div className={styles.Table}>\n <table>\n {Object.entries(value || {}).map(([key, val]) => (\n <React.Fragment key={key}>\n <tbody>\n <tr>\n <th colSpan={2}>{`{${key}}`}</th>\n </tr>\n {val.map((item, index) => (\n <tr key={`${key}-${index}`}>\n <td>{index}</td>\n <td title={JSON.stringify(item, null, 2)}>\n {item?.toString?.()}\n </td>\n </tr>\n ))}\n </tbody>\n </React.Fragment>\n ))}\n </table>\n </div>\n );\n}\n\n// either has children or items\ntype TreeBranch<T> = {\n name: string;\n children: TreeBranch<T>[];\n items?: T[];\n};\n\nfunction createTreeStructure<T = any>(tree: Tree<T>) {\n const keys = Object.keys(tree);\n let structure: TreeBranch<T> = { name: \"root\", children: [] };\n\n keys.forEach((key) => {\n let path = key.split(\";\");\n let parent: TreeBranch<T> = structure;\n\n for (let i = 0; i < path.length; i++) {\n let part = parseInt(path[i], 10);\n if (!parent.children[part]) {\n parent.children[part] = {\n name: path.slice(0, i + 1).join(\";\"),\n children: [],\n };\n }\n parent = parent.children[part];\n }\n parent.items = tree[key];\n });\n\n return structure;\n}\n\ninterface TreeBranchViewProps {\n branch: TreeBranch<any>;\n}\nfunction TreeBranchView({ branch }: TreeBranchViewProps) {\n let [expanded, setExpanded] = React.useState(true);\n let isLeaf = !!branch.items;\n let subCnt = branch.children.length || branch.items?.length || 0;\n let maxCnt = 10;\n return (\n <div>\n <div\n className={classNames(\n { [styles.expanded]: expanded },\n styles.GroupHead\n )}\n onClick={() => setExpanded(!expanded)}\n >\n <div className={styles.GroupName}>group {branch.name}</div>\n <div className={styles.GroupCnt}>({subCnt})</div>\n </div>\n {expanded && (\n <div className={styles.GroupChildren}>\n {!isLeaf &&\n branch.children.map((subgroup, index) => {\n // sub branch\n return (\n <TreeBranchView key={index} branch={subgroup} />\n );\n })}\n {isLeaf && (\n <>\n {branch.items\n ?.slice(0, maxCnt)\n .map((item, index) => {\n // items\n let label = item?.toString?.();\n if (label === \"[object Object]\") {\n label = \"{...}\";\n }\n return (\n <div key={index}>\n <div\n className={styles.GroupLeaf}\n title={JSON.stringify(\n item,\n null,\n 2\n )}\n >\n {label}\n </div>\n </div>\n );\n })}\n {branch.items && branch.items.length > maxCnt && (\n <div className={styles.GroupMore}>\n ... {branch.items.length - maxCnt} more\n </div>\n )}\n </>\n )}\n </div>\n )}\n </div>\n );\n}\n\ninterface TreeViewProps {\n value: Tree<any> | null;\n}\nexport function TreeView({ value }: TreeViewProps) {\n let structure = createTreeStructure(value || {});\n return (\n <div>\n {structure.children.map((branch, index) => (\n <TreeBranchView key={index} branch={branch} />\n ))}\n </div>\n );\n}\n\nexport const Log = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n const engine = useEngine();\n const [value, setValue] = React.useState<Tree<any> | null>(null);\n\n React.useEffect(() => {\n return engine.subscribe(\"functionResult\", (event) => {\n if (event.name === id) {\n setValue(event.context.scope[id]?.data || null);\n }\n });\n }, []);\n\n return (\n <NodeContainer\n id={id}\n label={data.name}\n selected={selected}\n className={styles.Log}\n >\n {/* <TreeTable value={value} /> */}\n <TreeView value={value} />\n <Handle\n type=\"target\"\n position={Position.Left}\n id={`${id}-data`}\n />\n <Handle\n type=\"source\"\n position={Position.Right}\n id={`${id}-data`}\n />\n </NodeContainer>\n );\n }\n);\nLog.displayName = \"LogNode\";\n","import React from \"react\";\nimport classNames from \"classnames\";\n\nimport { FunctionNode } from \"../types\";\nimport { Input } from \"../Components/Input\";\nimport { Param } from \"../Components/Param\";\nimport { Output } from \"../Components/Output\";\nimport { NodeContainer } from \"../Components/NodeContainer\";\nimport { RecOfTrees, VarDef } from \"../../Engine\";\nimport { useEngine } from \"../Context\";\nimport { TreeView } from \"../Nodes/Log\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\n\ninterface GenericNodeProps {\n id: string;\n data: FunctionNode[\"data\"];\n selected: boolean;\n inputs?: Record<string, VarDef>;\n outputs?: Record<string, VarDef>;\n params?: Record<string, VarDef>;\n children?: React.ReactNode;\n}\nexport function GenericNode({\n id,\n data,\n selected,\n inputs,\n outputs,\n params,\n children,\n}: GenericNodeProps) {\n const inputEntries = Object.entries(inputs || data.inputDefs || {});\n const outputEntries = Object.entries(outputs || data.outputDefs || {});\n const paramEntries = Object.entries(params || data.paramDefs || {});\n\n const engine = useEngine();\n const [result, setResult] = React.useState<RecOfTrees>({});\n const [duration, setDuration] = React.useState<number | null>(null);\n const [focus, setFocus] = React.useState<string | null>(\n outputEntries[0]?.[0] || null\n );\n const [showPreview, setShowPreview] = React.useState(false);\n\n const previewValue = focus ? result[focus] : Object.values(result)[0];\n\n React.useEffect(() => {\n return engine.subscribe(\"functionResult\", (event) => {\n if (event.name === id) {\n setResult(event.result || {});\n setDuration(event.duration ?? null);\n }\n });\n }, []);\n\n return (\n <NodeContainer label={data.label} selected={selected} id={id}>\n <div className={styles.Description}>{data.description}</div>\n {children}\n <div className={styles.Ports}>\n {outputEntries.map(([name, varDef]) => (\n <Output\n key={name}\n name={name}\n varDef={varDef}\n id={id}\n onClick={() => setFocus(name)}\n focus={showPreview && focus === name}\n />\n ))}\n {inputEntries.map(([name, varDef]) => (\n <Input\n key={name}\n name={name}\n varDef={varDef}\n id={id}\n data={data}\n />\n ))}\n {paramEntries.map(([name, varDef]) => (\n <Param\n key={name}\n name={name}\n varDef={varDef}\n id={id}\n data={data}\n />\n ))}\n </div>\n <div\n className={classNames(styles.PreviewHead, {\n [styles.expanded]: showPreview,\n })}\n onClick={() => setShowPreview(!showPreview)}\n >\n Preview\n </div>\n {showPreview && (\n <div className={styles.Preview}>\n <TreeView value={previewValue} />\n {duration !== null && (\n <div className={styles.Duration}>\n {duration.toFixed(2)} ms\n </div>\n )}\n </div>\n )}\n </NodeContainer>\n );\n}\n","import React from \"react\";\nimport { NodeProps } from \"@xyflow/react\";\nimport { create, all } from \"mathjs\";\nimport katex from \"katex\";\n\nimport { FunctionNode } from \"../types\";\nimport { GenericNode } from \"../Components/GenericNode\";\nimport { getUnboundSymbols } from \"../../Primitives/Math/calc\";\n\nimport \"../style/katex.min.css\";\n\nlet math = create(all, {});\n\ntype MathProps = { expr: string; displayMode?: boolean };\n\nexport function MathView({ expr, displayMode = false }: MathProps) {\n let latex = \"\";\n try {\n latex = math.parse(expr).toTex({ parenthesis: \"auto\" });\n } catch (e) {\n latex = String(expr); // fallback on parse error\n }\n const html = katex.renderToString(latex, {\n throwOnError: false,\n displayMode, // true = block, false = inline\n });\n return <span dangerouslySetInnerHTML={{ __html: html }} />;\n}\n\nexport const Calc = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n let expression = (data.params?.expression || \"\").toString();\n\n // add free variables to inputs\n const inputs = { ...(data.inputDefs || {}) };\n const symbols = getUnboundSymbols(expression as string);\n symbols.forEach((symbol) => {\n if (!inputs[symbol]) {\n inputs[symbol] = {\n type: \"number\",\n };\n }\n });\n\n return (\n <GenericNode\n id={id}\n data={data}\n selected={selected}\n inputs={inputs}\n >\n <MathView expr={expression} displayMode />\n </GenericNode>\n );\n }\n);\nCalc.displayName = \"CalcNode\";\n","import React from \"react\";\nimport { NodeProps } from \"@xyflow/react\";\n\nimport { FunctionNode } from \"../types\";\nimport { GenericNode } from \"../Components/GenericNode\";\n\nexport const Default = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n return <GenericNode id={id} data={data} selected={selected} />;\n }\n);\nDefault.displayName = \"DefaultNode\";\n","import React from \"react\";\nimport styles from \"./NodeComponents.module.css\";\n\ninterface MenuProps {\n handle: React.ReactNode;\n children?: React.ReactNode;\n}\nexport function Menu({ handle, children }: MenuProps) {\n const [open, setOpen] = React.useState(false);\n const handleOpen = () => {\n setOpen(!open);\n };\n const handleClose = () => {\n setOpen(false);\n };\n return (\n <div className={styles.Menu}>\n <div onClick={handleOpen}>{handle}</div>\n {open && (\n <div className={styles.MenuCanvas} onClick={handleClose}>\n {children}\n </div>\n )}\n </div>\n );\n}\n\ninterface MenuItemProps extends React.HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n}\nexport function MenuItem({ children, ...props }: MenuItemProps) {\n return (\n <div className={styles.MenuItem} {...props}>\n {children}\n </div>\n );\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { Handle, NodeProps, Position } from \"@xyflow/react\";\n\nimport { NodeContainer } from \"../Components/NodeContainer\";\nimport { FunctionNode } from \"../types\";\nimport {\n GraphedFunction,\n NormalizedVarDef,\n normalizeVarDef,\n uid,\n} from \"../../Engine\";\nimport { useGraphedFunction, usePrompts } from \"../Context\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\nimport compStyles from \"../Components/NodeComponents.module.css\";\nimport { Menu, MenuItem } from \"../Components/Menu\";\n\n/**\n * todo: get input data from graphed function\n */\n\nexport const InputNode = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n let fn = useGraphedFunction();\n let { prompt } = usePrompts();\n\n let outputs: Record<string, NormalizedVarDef> = Object.fromEntries(\n Object.keys(fn.inputs || {}).map((name) => [\n name,\n normalizeVarDef(fn.inputs![name]),\n ])\n );\n\n const onRename = async (id: string, oldLabel: string) => {\n let label = await prompt(\"Enter new name\", oldLabel);\n if (label !== null && label !== oldLabel) {\n data.onIOChange?.((fn: GraphedFunction) => {\n const inputs = { ...fn.inputs };\n const n = normalizeVarDef(inputs[id]);\n inputs[id] = { ...n, label };\n return { inputs };\n });\n }\n };\n\n const onAdd = async () => {\n let label = await prompt(\"Enter new name\");\n if (label !== null) {\n data.onIOChange?.((fn: GraphedFunction) => {\n const inputs = { ...fn.inputs };\n inputs[uid()] = { type: \"any\", label };\n return { inputs };\n });\n }\n };\n\n const onDelete = (name: string) => {\n data.onIOChange?.((fn: GraphedFunction) => {\n const inputs = { ...fn.inputs };\n delete inputs[name];\n return { inputs };\n });\n };\n\n const onDefault = async (id: string) => {\n let value: any = await prompt(\"Enter default value\");\n if (value !== null && fn.inputs?.[id]) {\n let n = normalizeVarDef(fn.inputs[id]);\n if (n.type === \"number\") {\n value = Number(value);\n } else if (n.type === \"boolean\") {\n value = value.toLowerCase() === \"true\";\n }\n data.onIOChange?.((fn: GraphedFunction) => {\n const inputs = { ...fn.inputs };\n inputs[id] = { ...n, default: value };\n return { inputs };\n });\n }\n };\n\n const onType = async (id: string) => {\n let type: any = await prompt(\"Enter type\");\n if (type !== null && fn.inputs?.[id]) {\n let n = normalizeVarDef(fn.inputs[id]);\n data.onIOChange?.((fn: GraphedFunction) => {\n const inputs = { ...fn.inputs };\n inputs[id] = { ...n, type };\n return { inputs };\n });\n }\n };\n\n return (\n <NodeContainer\n label={data.label}\n selected={selected}\n id={id}\n noDelete\n >\n <div className={styles.Description}>{data.description}</div>\n <div className={styles.Ports}>\n {Object.entries(outputs || {}).map(([name, normalized]) => {\n return (\n <Handle\n key={name}\n type=\"source\"\n position={Position.Right}\n id={`${id}-${name}`}\n className={classNames(\n compStyles.Output,\n compStyles.Port,\n compStyles[`type-${normalized.type}`]\n )}\n style={\n {\n \"--type-color\": `var(--color-${normalized.type})`,\n } as any\n }\n >\n <Menu handle={<button>...</button>}>\n <MenuItem\n onClick={() =>\n onRename(\n name,\n normalized.label || name\n )\n }\n >\n Rename\n </MenuItem>\n <MenuItem onClick={() => onDelete(name)}>\n Delete\n </MenuItem>\n <MenuItem onClick={() => onDefault(name)}>\n Set Default\n </MenuItem>\n <MenuItem onClick={() => onType(name)}>\n Set Type\n </MenuItem>\n </Menu>\n <span style={{ flex: 1 }}></span>\n <span className={compStyles.PortLabel}>\n {normalized.label || name}\n </span>\n </Handle>\n );\n })}\n <div className={styles.Body}>\n <button onClick={() => onAdd()}>+</button>\n </div>\n </div>\n </NodeContainer>\n );\n }\n);\nInputNode.displayName = \"InputNode\";\n","import React from \"react\";\nimport { NodeProps } from \"@xyflow/react\";\n\nimport { NodeContainer } from \"../Components/NodeContainer\";\nimport { FunctionNode } from \"../types\";\nimport { Output } from \"../Components/Output\";\nimport { Input } from \"../Components/Input\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\n\nfunction uid() {\n return Math.random().toString(36).substring(2, 15);\n}\n\nexport const Merge = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n let inputs = Object.fromEntries(\n Object.keys(data.inputs || {}).map((name, i) => [\n name,\n { type: \"any\", label: `D${i + 1}` },\n ])\n );\n let inputCount = Object.keys(inputs).length;\n inputs[uid()] = { type: \"any\", label: `D${inputCount + 1}` };\n let outputs = { ...(data.outputDefs || {}) };\n\n return (\n <NodeContainer label={data.label} selected={selected} id={id}>\n <div className={styles.Description}>{data.description}</div>\n <div className={styles.Ports}>\n {Object.entries(outputs || {}).map(([name, varDef]) => (\n <Output\n key={name}\n name={name}\n varDef={varDef}\n id={id}\n />\n ))}\n {Object.entries(inputs || {}).map(([name, varDef]) => (\n <Input\n key={name}\n name={name}\n varDef={varDef}\n id={id}\n data={data}\n />\n ))}\n </div>\n </NodeContainer>\n );\n }\n);\nMerge.displayName = \"MergeNode\";\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { Handle, NodeProps, Position } from \"@xyflow/react\";\n\nimport { NodeContainer } from \"../Components/NodeContainer\";\nimport { FunctionNode } from \"../types\";\nimport {\n GraphedFunction,\n isReference,\n NormalizedVarDef,\n normalizeVarDef,\n parseReference,\n} from \"../../Engine\";\nimport { useEngine, useGraphedFunction, usePrompts } from \"../Context\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\nimport compStyles from \"../Components/NodeComponents.module.css\";\nimport { Menu, MenuItem } from \"../Components/Menu\";\n\n/**\n * todo: create a factory for output component\n * - allow to pass prompt handler (async)\n * - allow to pass custom UI for renaming/adding/deleting\n *\n * - create input node\n */\n\nexport const OutputNode = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n let engine = useEngine();\n let fn = useGraphedFunction();\n let { prompt } = usePrompts();\n\n let inputs: Record<string, NormalizedVarDef> = Object.fromEntries(\n Object.entries(data.inputs || {}).map(([name, ref], i) => {\n let type = \"any\";\n if (isReference(ref)) {\n const [fnId, outputName] = parseReference(ref).split(\".\");\n const fnName = fn.body[fnId]?.name;\n if (fnName) {\n let calledFn = engine.getFunction(fnName);\n const outputDef = calledFn?.outputs?.[outputName];\n if (outputDef) {\n let n = normalizeVarDef(outputDef);\n if (n?.type) {\n type = n.type;\n }\n }\n }\n }\n return [name, { type, label: name }];\n })\n );\n\n const onRename = async (oldName: string) => {\n let newName = await prompt(\"Enter new name\", oldName);\n if (newName !== null && newName !== oldName) {\n data.onIOChange?.((fn: GraphedFunction) => {\n const outputs = { ...fn.outputs };\n outputs[newName] = outputs[oldName];\n delete outputs[oldName];\n return { outputs };\n });\n }\n };\n\n const onAdd = async () => {\n let newName = await prompt(\"Enter new name\");\n if (newName !== null) {\n data.onIOChange?.((fn: GraphedFunction) => {\n const outputs = { ...fn.outputs };\n outputs[newName] = \"\";\n return { outputs };\n });\n }\n };\n\n const onDelete = (name: string) => {\n data.onIOChange?.((fn: GraphedFunction) => {\n const outputs = { ...fn.outputs };\n delete outputs[name];\n return { outputs };\n });\n };\n\n return (\n <NodeContainer\n label={data.label}\n selected={selected}\n id={id}\n noDelete\n >\n <div className={styles.Description}>{data.description}</div>\n <div className={styles.Ports}>\n {Object.entries(inputs || {}).map(([name, varDef]) => {\n return (\n <Handle\n key={name}\n type=\"target\"\n position={Position.Left}\n id={`${id}-${name}`}\n className={classNames(\n compStyles.Input,\n compStyles.Port,\n compStyles[`type-${varDef.type}`]\n )}\n style={\n {\n \"--type-color\": `var(--color-${varDef.type})`,\n } as any\n }\n >\n <span className={compStyles.PortLabel}>\n {name}\n </span>\n <span style={{ flex: 1 }}></span>\n <Menu handle={<button>...</button>}>\n <MenuItem onClick={() => onRename(name)}>\n Rename\n </MenuItem>\n <MenuItem onClick={() => onDelete(name)}>\n Delete\n </MenuItem>\n </Menu>\n </Handle>\n );\n })}\n </div>\n <div className={styles.Body}>\n <button onClick={() => onAdd()}>+</button>\n </div>\n </NodeContainer>\n );\n }\n);\nOutputNode.displayName = \"OutputNode\";\n","import { Calc } from \"./Calc\";\nimport { Default } from \"./Default\";\nimport { InputNode } from \"./Input\";\nimport { Log } from \"./Log\";\nimport { Merge } from \"./Merge\";\nimport { OutputNode } from \"./Output\";\n\nexport const nodeTypes = {\n Default,\n Calc,\n Log,\n Merge,\n Input: InputNode,\n Output: OutputNode,\n};\n","import { create } from \"zustand\";\nimport { persist } from \"zustand/middleware\";\n\ntype Updater<T> = (oldValue: T) => T;\ninterface VariableStore {\n data: Record<string, any>;\n getVar: (scope: string, name: string, persist: boolean) => any;\n setVar: (scope: string, name: string, value: any, persist: boolean) => void;\n}\nlet variableStore = create<VariableStore>((set, get, api) =>\n persist<VariableStore>(\n (pset, pget) => ({\n data: {},\n getVar: (scope: string, name: string, persist: boolean) => {\n if (persist) {\n return pget().data[`${scope}|${name}`];\n } else {\n return get().data[`${scope}|${name}`];\n }\n },\n setVar: (\n scope: string,\n name: string,\n value: any,\n persist: boolean\n ) => {\n let key = `${scope}|${name}`;\n if (persist) {\n let oldData = pget().data;\n let newValue =\n typeof value === \"function\"\n ? value(oldData[key])\n : value;\n let data = { ...oldData, [key]: newValue };\n pset({ data });\n } else {\n let oldData = get().data;\n let newValue =\n typeof value === \"function\"\n ? value(oldData[key])\n : value;\n let data = { ...oldData, [key]: newValue };\n set({ data });\n }\n },\n }),\n {\n name: \"variable-storage\", // unique name\n // getStorage: () => sessionStorage, // (optional) by default the 'localStorage' is used\n }\n )(set, get, api)\n);\n\n/**\n * scope restricts the variable scope, for example to a view id\n * @param scope\n * @param name\n */\nexport const useVariable = <T = any>(\n scope: string,\n name: string,\n initial: T,\n persist = true\n): [T, (t: T | Updater<T>) => void] => {\n let value = variableStore(({ getVar }) => getVar(scope, name, persist));\n if (typeof value === \"undefined\") value = initial;\n let setVar = variableStore(({ setVar }) => setVar);\n let setValue = (value: any) => setVar(scope, name, value, persist);\n return [value, setValue];\n};\n","import React from \"react\";\nimport { GraphedFunction } from \"../Engine\";\nimport { FunctionNode } from \"../Flow\";\nimport { useVariable } from \"./useVariable\";\n\ntype Point = { x: number; y: number };\n\nexport function usePositions(fn: GraphedFunction) {\n return useVariable<Record<string, Point>>(\n \"rules\",\n `${fn.name}.positions`,\n {}\n );\n}\n\nexport function useUpdatePositions(fn: GraphedFunction) {\n let [positions, setPositions] = usePositions(fn);\n return React.useCallback(\n (id: string, position: Point) => {\n positions[id] = position;\n setPositions(positions);\n },\n [positions, setPositions]\n );\n}\n","import React from \"react\";\nimport { Edge } from \"@xyflow/react\";\n\nimport {\n Engine,\n FunctionCall,\n getReferences,\n GraphedFunction,\n Ref,\n VarRef,\n} from \"../Engine\";\nimport { FunctionNode } from \"../Flow\";\nimport { create } from \"zustand\";\n\nexport type PositionData = Record<string, { x: number; y: number }>;\n\nexport interface FlowOptions {\n dragHandle?: string;\n positions?: PositionData;\n onDataChange?: (\n id: string\n ) => (newData: Partial<FunctionNode[\"data\"]>) => void;\n onIOChange?: (\n callback: (fn: GraphedFunction) => Partial<GraphedFunction>\n ) => void;\n}\n\n// helpers\nfunction updateNodeArguments(\n node: FunctionNode,\n inputs?: VarRef,\n params?: VarRef\n): FunctionNode {\n return {\n ...node,\n data: {\n ...node.data,\n inputs,\n params,\n },\n };\n}\n\nfunction createNode(\n engine: Engine,\n id: string,\n fncall: FunctionCall,\n options: FlowOptions\n): FunctionNode {\n const calledFn = engine.getFunction(fncall.name);\n\n // create a node for each function call\n return {\n id,\n data: {\n name: fncall.name,\n label: fncall.label || calledFn?.label || fncall.name,\n description: calledFn?.description,\n inputs: fncall.inputs,\n params: fncall.params,\n inputDefs: calledFn?.inputs || {},\n paramDefs: calledFn?.params || {},\n outputDefs: calledFn?.outputs || {},\n onChange: options.onDataChange?.(id) || (() => {}),\n onIOChange: options.onIOChange || ((fn) => fn),\n },\n position: options.positions?.[id] || { x: 0, y: 0 },\n dragHandle: options.dragHandle,\n type: calledFn?.nodeType || \"Default\",\n };\n}\n\nfunction createEdge(nodeId: string, ref: Ref): Edge {\n return {\n id: `${ref.path}-${nodeId}.${ref.name}`,\n source: ref.refNode,\n target: nodeId,\n sourceHandle: `${ref.refNode}-${ref.refField}`,\n targetHandle: `${nodeId}-${ref.name}`,\n };\n}\n\ninterface FlowState {\n engine: Engine | null;\n fn: GraphedFunction | null;\n options: FlowOptions;\n nodes: Record<string, FunctionNode>;\n edges: Edge[];\n setNodes: (updater: (nodes: FunctionNode[]) => FunctionNode[]) => void;\n setEdges: (updater: (edges: Edge[]) => Edge[]) => void;\n setFn: (fn: GraphedFunction, options: FlowOptions) => void;\n init: (fn: GraphedFunction, engine: Engine, options: FlowOptions) => void;\n}\n\n/**\n * flow state stores nodes and edges for the flow graph these can be updated when the function changes\n * using setFn\n */\nconst useFlowState = create<FlowState>((set, get) => ({\n engine: null,\n fn: null,\n options: {},\n nodes: {},\n edges: [],\n setNodes: (updater: (nodes: FunctionNode[]) => FunctionNode[]) => {\n set((state) => {\n let currentNodes = Object.values(state.nodes);\n let newNodes = updater(currentNodes);\n let nodes = Object.fromEntries(newNodes.map((n) => [n.id, n]));\n return { nodes };\n });\n },\n setEdges: (updater: (edges: Edge[]) => Edge[]) => {\n set((state) => ({ edges: updater(state.edges) }));\n },\n setFn: (fn: GraphedFunction, options: FlowOptions) => {\n // console.log(\"setFn\", fn);\n let { fn: oldFn, nodes, edges, engine } = get();\n // update the graph by shallow comparison\n\n if (!engine) {\n throw new Error(\"Engine not set\");\n }\n\n let oldKeys = Object.keys(oldFn?.body || {});\n let newKeys = Object.keys(fn.body || {});\n\n // remove all the nodes that were removed\n Object.keys(nodes).forEach((key) => {\n if (!newKeys.includes(key)) {\n delete nodes[key];\n }\n });\n // remove all the edges that were removed\n edges = edges?.filter((edge) => {\n return (\n (newKeys.includes(edge.source) || edge.source === \"inputs\") &&\n newKeys.includes(edge.target)\n );\n });\n\n // make sure there is an output node if outputs are defined\n if (fn.outputs && !nodes[\"output\"]) {\n const key = \"output\";\n const fncall: FunctionCall = {\n name: \"output\",\n inputs: fn.outputs || {},\n params: {},\n };\n const newNode = createNode(engine, key, fncall, options);\n nodes[key] = newNode;\n\n // add edges\n const refs = getReferences(fncall.inputs || {});\n refs.forEach((ref) => {\n edges.push(createEdge(key, ref));\n });\n }\n\n // make sure there is an input node if inputs are defined\n if (fn.inputs && !nodes[\"inputs\"]) {\n const key = \"inputs\";\n const fncall: FunctionCall = {\n name: \"inputs\",\n inputs: {},\n params: {},\n };\n const newNode = createNode(engine, key, fncall, options);\n nodes[key] = newNode;\n }\n\n // create the new nodes that were added\n let addedKeys = newKeys.filter((key) => !oldKeys.includes(key));\n addedKeys.forEach((key, index) => {\n let fncall = fn.body?.[key];\n\n // add the node\n let newNode = createNode(engine, key, fncall, options);\n nodes[newNode.id] = newNode;\n\n // add edges\n const refs = getReferences(fncall.inputs || {});\n refs.forEach((ref) => {\n edges.push(createEdge(key, ref));\n });\n });\n\n // update the changed nodes\n let changedKeys = newKeys.filter((key) => {\n // shallow comparison\n return fn.body?.[key] !== oldFn?.body?.[key];\n });\n // console.log(\"changed keys\", changedKeys);\n changedKeys.forEach((key) => {\n // update the nodes that were changed\n let fncall = fn.body?.[key];\n let node = nodes[key];\n nodes[key] = updateNodeArguments(\n node,\n fncall.inputs,\n fncall.params\n );\n\n // update incoming edges\n const refs = getReferences(fncall.inputs || {});\n // remove all incoming edges\n edges = edges?.filter((e) => e.target !== key);\n // add the edge\n refs.forEach((ref) => {\n edges.push(createEdge(key, ref));\n });\n });\n\n // console.log(\"final graph\", nodes, edges);\n\n // update the function, nodes and edges\n set({ fn, nodes, edges });\n },\n init: (fn: GraphedFunction, engine: Engine, options: FlowOptions) => {\n // console.log(\"initing\");\n set({ engine, options });\n get().setFn(fn, options);\n },\n}));\n\n/**\n * creates a flow state and provides handlers to update nodes and edges\n */\nexport function useFlow(\n fn: GraphedFunction,\n engine: Engine,\n options: FlowOptions\n) {\n let state = useFlowState();\n\n React.useEffect(() => {\n state.init(fn, engine, options);\n }, [engine]);\n\n React.useEffect(() => {\n state.setFn(fn, options);\n }, [fn, options]);\n\n return React.useMemo(\n () => ({\n nodes: Object.values(state.nodes),\n edges: state.edges,\n setNodes: state.setNodes,\n setEdges: state.setEdges,\n }),\n [state]\n );\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport {\n ConnectionLineComponentProps,\n getSimpleBezierPath,\n Position,\n useConnection,\n} from \"@xyflow/react\";\n\nimport styles from \"./NodeComponents.module.css\";\n\nexport default ({\n fromX,\n fromY,\n toX,\n toY,\n fromHandle,\n fromNode,\n connectionStatus,\n}: ConnectionLineComponentProps) => {\n const { toNode, toHandle } = useConnection();\n\n // correcting the start point as we moved the nodes in our custom ports\n if (fromNode && fromHandle) {\n fromX = fromNode?.position.x + fromHandle.x;\n if (fromHandle.position === \"right\") {\n fromX += fromHandle.width;\n }\n }\n\n if (toNode && toHandle) {\n toX = toHandle.x - toHandle.width / 2; // align to left side of the handle\n if (toHandle.position === \"right\") {\n toX += toHandle.width;\n }\n }\n\n let d = getSimpleBezierPath({\n sourceX: fromX,\n sourceY: fromY,\n targetX: toX,\n targetY: toY,\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n });\n\n return (\n <g\n className={classNames(\n styles.ConnectionPath,\n \"react-flow__connection-path\",\n { [styles.valid]: connectionStatus === \"valid\" }\n )}\n >\n <path d={d[0]} />\n </g>\n );\n};\n","import React from \"react\";\nimport {\n applyEdgeChanges,\n applyNodeChanges,\n Background,\n BackgroundVariant,\n Connection,\n Controls,\n Edge,\n Node,\n ReactFlow,\n ReactFlowInstance,\n ReactFlowProvider,\n useOnSelectionChange,\n XYPosition,\n} from \"@xyflow/react\";\nimport { useDrop } from \"react-dnd\";\n\nimport { GraphedFunction } from \"../Engine/types\";\nimport { Engine } from \"../Engine\";\nimport { nodeTypes } from \"./Nodes\";\nimport { FlowContext } from \"./Context\";\nimport { WidgetProps } from \"./Components/Control\";\nimport { usePositions, useUpdatePositions } from \"../hooks/usePositions\";\nimport { FlowOptions, useFlow } from \"../hooks/useFlow\";\nimport { FunctionNode, NodeDropItem, Prompts, Updater } from \"./types\";\nimport ConnectionLine from \"./Components/ConnectionLine\";\n\nimport \"./style/xyflow.css\";\nimport styles from \"./Nodes/Nodes.module.css\";\n\nexport * from \"./types\";\n\n/**\n * goal: this component should only be responsible for updating the inner node graph, it should call the onChange handler\n * on any change, but not rerender when the given function changes, as it slows down the interface drastically\n */\n\ninterface FlowProps {\n function: GraphedFunction;\n engine: Engine;\n center?: boolean;\n fitView?: boolean;\n onChange?: (updater: Updater<GraphedFunction>) => void;\n onClick?: (event: React.MouseEvent, position: XYPosition) => void;\n onSelect?: (ids: string[]) => void;\n customControls?: Record<string, React.ComponentType<WidgetProps<any>>>;\n customPrompts?: Prompts;\n}\nfunction FlowInner({\n function: fn,\n engine,\n center = true,\n fitView,\n onChange,\n onClick,\n onSelect,\n}: FlowProps) {\n const [instance, setInstance] = React.useState<ReactFlowInstance | null>(\n null\n );\n\n let updatePosition = useUpdatePositions(fn);\n let [positions] = usePositions(fn);\n\n let options: FlowOptions = React.useMemo(() => {\n const handleDataChange =\n (id: string) => (newData: Partial<FunctionNode[\"data\"]>) => {\n onChange?.((fn) => {\n // update the function definition\n // console.log(\"before fn call update\", Object.keys(fn.body));\n const body = { ...fn.body };\n const fncall = { ...(body[id] || {}), ...newData };\n body[id] = fncall;\n // console.log(\"after fn call update\", Object.keys(body));\n const updatedFn = { ...fn, body };\n return updatedFn;\n });\n };\n\n const handleIOChange = (\n callback: (fn: GraphedFunction) => Partial<GraphedFunction>\n ) => {\n const changes = callback(fn);\n onChange?.((oldFn) => {\n return {\n ...oldFn,\n ...changes,\n };\n });\n };\n return {\n dragHandle: `.${styles.Label}`,\n positions,\n onDataChange: handleDataChange,\n onIOChange: handleIOChange,\n };\n }, [fn, onChange]);\n\n let { nodes, edges, setNodes, setEdges } = useFlow(fn, engine, options);\n\n // node selection handler\n const handleSelect = React.useCallback(\n ({ nodes }) => {\n onSelect?.(nodes.map((n: Node) => n.id) || []);\n },\n [onSelect]\n );\n useOnSelectionChange({\n onChange: handleSelect,\n });\n\n // dropping nodes\n let [{ isOver }, drop] = useDrop({\n accept: \"flow-node\",\n drop: (item: NodeDropItem, monitor) => {\n let pos = monitor.getClientOffset();\n\n if (instance && pos) {\n const position = instance.screenToFlowPosition(pos);\n // console.log(\"handle drop\", position);\n\n onChange?.((fn) => {\n return engine.applyNodeAdd(fn, item.name, (fnCall, id) => {\n // console.log(\"node added\", id, position);\n updatePosition(id, position);\n });\n });\n }\n },\n collect: (monitor) => {\n return {\n isOver: monitor.isOver(),\n };\n },\n });\n\n // connecting nodes\n const onConnect = React.useCallback(\n (params: Connection) => {\n const sourceField = params.sourceHandle?.split(\"-\")[1];\n const targetField = params.targetHandle?.split(\"-\")[1];\n if (!sourceField || !targetField) {\n console.warn(\"Invalid connection handles\", params);\n return;\n }\n onChange?.((fn) =>\n engine.applyNodeConnect(\n fn,\n params.source,\n params.target,\n sourceField,\n targetField\n )\n );\n },\n [fn, onChange]\n );\n\n // deleting nodes\n const onNodesDelete = React.useCallback(\n (nodesToDelete: Node[]) => {\n onChange?.((fn) =>\n engine.applyNodeDelete(\n fn,\n nodesToDelete.map((n) => n.id)\n )\n );\n },\n [onChange, fn]\n );\n\n // deleting edges\n const onEdgesDelete = React.useCallback(\n (edgesToDelete: Edge[]) => {\n onChange?.((fn) => {\n let newFn = fn;\n edgesToDelete.forEach((edge) => {\n const sourceField = edge.sourceHandle?.split(\"-\")[1];\n const targetField = edge.targetHandle?.split(\"-\")[1];\n if (!sourceField || !targetField) {\n console.warn(\"Invalid connection handles\", edge);\n return;\n }\n newFn = engine.applyEdgeDelete(\n newFn,\n edge.source,\n edge.target,\n sourceField,\n targetField\n );\n });\n return newFn;\n });\n },\n [onChange, fn]\n );\n\n // handle canvas clicks to be able to place nodes\n const handleClick = (e: React.MouseEvent) => {\n if (instance) {\n const position = instance.screenToFlowPosition({\n x: e.clientX,\n y: e.clientY,\n });\n onClick?.(e, position);\n }\n };\n\n const onNodesChange = React.useCallback((changes) => {\n changes = changes.filter((change) => {\n if (change.id === \"output\" && change.type === \"remove\")\n return false;\n return true;\n });\n return setNodes((nodesSnapshot) =>\n applyNodeChanges(changes, nodesSnapshot)\n );\n }, []);\n const onEdgesChange = React.useCallback((changes) => {\n changes = changes.filter((change) => {\n if (change.id.includes(\"-output.\") && change.type === \"remove\")\n return false;\n return true;\n });\n return setEdges((edgesSnapshot) =>\n applyEdgeChanges(changes, edgesSnapshot)\n );\n }, []);\n\n return (\n <ReactFlow\n ref={drop as any}\n nodes={nodes}\n edges={edges}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n onEdgesChange={onEdgesChange}\n onNodesDelete={onNodesDelete}\n onEdgesDelete={onEdgesDelete}\n onNodeDragStop={(e, n) => updatePosition(n.id, n.position)}\n onConnect={onConnect}\n onInit={setInstance}\n onPaneClick={handleClick}\n fitView={center || fitView}\n fitViewOptions={{\n minZoom: fitView ? undefined : 1,\n maxZoom: fitView ? undefined : 1,\n }}\n // panOnDrag={false}\n selectionOnDrag={true}\n minZoom={0.1}\n maxZoom={4}\n deleteKeyCode={\"Delete\"}\n connectionLineComponent={ConnectionLine}\n >\n <Background variant={BackgroundVariant.Dots} />\n <Controls />\n </ReactFlow>\n );\n}\n\nexport function Flow(props: FlowProps) {\n const contextValue = React.useMemo(\n () => ({\n engine: props.engine,\n controls: props.customControls,\n graphedFn: props.function,\n prompts: props.customPrompts,\n }),\n [props.engine, props.customControls, props.function]\n );\n return (\n <FlowContext.Provider value={contextValue}>\n <ReactFlowProvider>\n <FlowInner {...props} />\n </ReactFlowProvider>\n </FlowContext.Provider>\n );\n}\n","import { ConnectableElement, useDrag } from \"react-dnd\";\n\nimport { PrimitiveFunction } from \"../Engine\";\nimport { NodeDropItem } from \"../Flow\";\n\nexport function useDraggableNode(name: string, fn: PrimitiveFunction) {\n let [, drag] = useDrag<NodeDropItem>({\n type: \"flow-node\",\n item: { name, fn },\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n return (ref: ConnectableElement) => drag(ref);\n}\n","import React from \"react\";\nimport { Engine, GraphedFunction } from \"../Engine\";\n\n/**\n * using functions\n *\n * in React context\n * - use useFunction. This will build the function, mount it if needed and provides a run function.\n *\n *\n * in Vanilla context\n * - use engine.build(fn) to build the function\n * - use engine.mount(fn) to mount the function (if it has a mount function)\n * - use await engine.run(fn, inputs) to run the function and get the result\n */\n\nexport function useFunction(\n engine: Engine,\n fn: GraphedFunction,\n mount?: boolean\n) {\n const [result, setResult] = React.useState<any>(null);\n const builtFn = React.useMemo(() => engine.build(fn), [fn]);\n React.useEffect(() => {\n if (mount) {\n return engine.mount(builtFn);\n }\n }, [builtFn, mount]);\n\n const run = React.useCallback(\n async (inputs?: Record<string, any>) => {\n const result = await engine.run(builtFn, inputs);\n setResult(result);\n return result;\n },\n [builtFn]\n );\n\n return React.useMemo(\n () => ({\n fn: builtFn,\n run,\n result,\n }),\n [builtFn, run, result]\n );\n}\n","// cheap lodash replacements\nexport function memoize(fn) {\n let result = null;\n const memoized = ()=>{\n if (result == null) {\n result = fn();\n }\n return result;\n };\n return memoized;\n}\n/**\n * drop-in replacement for _.without\n */ export function without(items, item) {\n return items.filter((i)=>i !== item\n );\n}\nexport function union(itemsA, itemsB) {\n const set = new Set();\n const insertItem = (item)=>set.add(item)\n ;\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n const result = [];\n set.forEach((key)=>result.push(key)\n );\n return result;\n}\n\n//# sourceMappingURL=js_utils.js.map","import { union, without } from './utils/js_utils.js';\nexport class EnterLeaveCounter {\n enter(enteringNode) {\n const previousLength = this.entered.length;\n const isNodeEntered = (node)=>this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode))\n ;\n this.entered = union(this.entered.filter(isNodeEntered), [\n enteringNode\n ]);\n return previousLength === 0 && this.entered.length > 0;\n }\n leave(leavingNode) {\n const previousLength = this.entered.length;\n this.entered = without(this.entered.filter(this.isNodeInDocument), leavingNode);\n return previousLength > 0 && this.entered.length === 0;\n }\n reset() {\n this.entered = [];\n }\n constructor(isNodeInDocument){\n this.entered = [];\n this.isNodeInDocument = isNodeInDocument;\n }\n}\n\n//# sourceMappingURL=EnterLeaveCounter.js.map","export class NativeDragSource {\n initializeExposedProperties() {\n Object.keys(this.config.exposeProperties).forEach((property)=>{\n Object.defineProperty(this.item, property, {\n configurable: true,\n enumerable: true,\n get () {\n // eslint-disable-next-line no-console\n console.warn(`Browser doesn't allow reading \"${property}\" until the drop event.`);\n return null;\n }\n });\n });\n }\n loadDataTransfer(dataTransfer) {\n if (dataTransfer) {\n const newProperties = {};\n Object.keys(this.config.exposeProperties).forEach((property)=>{\n const propertyFn = this.config.exposeProperties[property];\n if (propertyFn != null) {\n newProperties[property] = {\n value: propertyFn(dataTransfer, this.config.matchesTypes),\n configurable: true,\n enumerable: true\n };\n }\n });\n Object.defineProperties(this.item, newProperties);\n }\n }\n canDrag() {\n return true;\n }\n beginDrag() {\n return this.item;\n }\n isDragging(monitor, handle) {\n return handle === monitor.getSourceId();\n }\n endDrag() {\n // empty\n }\n constructor(config){\n this.config = config;\n this.item = {};\n this.initializeExposedProperties();\n }\n}\n\n//# sourceMappingURL=NativeDragSource.js.map","export const FILE = '__NATIVE_FILE__';\nexport const URL = '__NATIVE_URL__';\nexport const TEXT = '__NATIVE_TEXT__';\nexport const HTML = '__NATIVE_HTML__';\n\n//# sourceMappingURL=NativeTypes.js.map","export function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {\n const result = typesToTry.reduce((resultSoFar, typeToTry)=>resultSoFar || dataTransfer.getData(typeToTry)\n , '');\n return result != null ? result : defaultValue;\n}\n\n//# sourceMappingURL=getDataFromDataTransfer.js.map","import * as NativeTypes from '../NativeTypes.js';\nimport { getDataFromDataTransfer } from './getDataFromDataTransfer.js';\nexport const nativeTypesConfig = {\n [NativeTypes.FILE]: {\n exposeProperties: {\n files: (dataTransfer)=>Array.prototype.slice.call(dataTransfer.files)\n ,\n items: (dataTransfer)=>dataTransfer.items\n ,\n dataTransfer: (dataTransfer)=>dataTransfer\n },\n matchesTypes: [\n 'Files'\n ]\n },\n [NativeTypes.HTML]: {\n exposeProperties: {\n html: (dataTransfer, matchesTypes)=>getDataFromDataTransfer(dataTransfer, matchesTypes, '')\n ,\n dataTransfer: (dataTransfer)=>dataTransfer\n },\n matchesTypes: [\n 'Html',\n 'text/html'\n ]\n },\n [NativeTypes.URL]: {\n exposeProperties: {\n urls: (dataTransfer, matchesTypes)=>getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n')\n ,\n dataTransfer: (dataTransfer)=>dataTransfer\n },\n matchesTypes: [\n 'Url',\n 'text/uri-list'\n ]\n },\n [NativeTypes.TEXT]: {\n exposeProperties: {\n text: (dataTransfer, matchesTypes)=>getDataFromDataTransfer(dataTransfer, matchesTypes, '')\n ,\n dataTransfer: (dataTransfer)=>dataTransfer\n },\n matchesTypes: [\n 'Text',\n 'text/plain'\n ]\n }\n};\n\n//# sourceMappingURL=nativeTypesConfig.js.map","import { NativeDragSource } from './NativeDragSource.js';\nimport { nativeTypesConfig } from './nativeTypesConfig.js';\nexport function createNativeDragSource(type, dataTransfer) {\n const config = nativeTypesConfig[type];\n if (!config) {\n throw new Error(`native type ${type} has no configuration`);\n }\n const result = new NativeDragSource(config);\n result.loadDataTransfer(dataTransfer);\n return result;\n}\nexport function matchNativeItemType(dataTransfer) {\n if (!dataTransfer) {\n return null;\n }\n const dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);\n return Object.keys(nativeTypesConfig).filter((nativeItemType)=>{\n const typeConfig = nativeTypesConfig[nativeItemType];\n if (!(typeConfig === null || typeConfig === void 0 ? void 0 : typeConfig.matchesTypes)) {\n return false;\n }\n return typeConfig.matchesTypes.some((t)=>dataTransferTypes.indexOf(t) > -1\n );\n })[0] || null;\n}\n\n//# sourceMappingURL=index.js.map","import { memoize } from './utils/js_utils.js';\nexport const isFirefox = memoize(()=>/firefox/i.test(navigator.userAgent)\n);\nexport const isSafari = memoize(()=>Boolean(window.safari)\n);\n\n//# sourceMappingURL=BrowserDetector.js.map","export class MonotonicInterpolant {\n interpolate(x) {\n const { xs , ys , c1s , c2s , c3s } = this;\n // The rightmost point in the dataset should give an exact result\n let i = xs.length - 1;\n if (x === xs[i]) {\n return ys[i];\n }\n // Search for the interval x is in, returning the corresponding y if x is one of the original xs\n let low = 0;\n let high = c3s.length - 1;\n let mid;\n while(low <= high){\n mid = Math.floor(0.5 * (low + high));\n const xHere = xs[mid];\n if (xHere < x) {\n low = mid + 1;\n } else if (xHere > x) {\n high = mid - 1;\n } else {\n return ys[mid];\n }\n }\n i = Math.max(0, high);\n // Interpolate\n const diff = x - xs[i];\n const diffSq = diff * diff;\n return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;\n }\n constructor(xs, ys){\n const { length } = xs;\n // Rearrange xs and ys so that xs is sorted\n const indexes = [];\n for(let i = 0; i < length; i++){\n indexes.push(i);\n }\n indexes.sort((a, b)=>xs[a] < xs[b] ? -1 : 1\n );\n // Get consecutive differences and slopes\n const dys = [];\n const dxs = [];\n const ms = [];\n let dx;\n let dy;\n for(let i1 = 0; i1 < length - 1; i1++){\n dx = xs[i1 + 1] - xs[i1];\n dy = ys[i1 + 1] - ys[i1];\n dxs.push(dx);\n dys.push(dy);\n ms.push(dy / dx);\n }\n // Get degree-1 coefficients\n const c1s = [\n ms[0]\n ];\n for(let i2 = 0; i2 < dxs.length - 1; i2++){\n const m2 = ms[i2];\n const mNext = ms[i2 + 1];\n if (m2 * mNext <= 0) {\n c1s.push(0);\n } else {\n dx = dxs[i2];\n const dxNext = dxs[i2 + 1];\n const common = dx + dxNext;\n c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));\n }\n }\n c1s.push(ms[ms.length - 1]);\n // Get degree-2 and degree-3 coefficients\n const c2s = [];\n const c3s = [];\n let m;\n for(let i3 = 0; i3 < c1s.length - 1; i3++){\n m = ms[i3];\n const c1 = c1s[i3];\n const invDx = 1 / dxs[i3];\n const common = c1 + c1s[i3 + 1] - m - m;\n c2s.push((m - c1 - common) * invDx);\n c3s.push(common * invDx * invDx);\n }\n this.xs = xs;\n this.ys = ys;\n this.c1s = c1s;\n this.c2s = c2s;\n this.c3s = c3s;\n }\n}\n\n//# sourceMappingURL=MonotonicInterpolant.js.map","import { isFirefox, isSafari } from './BrowserDetector.js';\nimport { MonotonicInterpolant } from './MonotonicInterpolant.js';\nconst ELEMENT_NODE = 1;\nexport function getNodeClientOffset(node) {\n const el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n if (!el) {\n return null;\n }\n const { top , left } = el.getBoundingClientRect();\n return {\n x: left,\n y: top\n };\n}\nexport function getEventClientOffset(e) {\n return {\n x: e.clientX,\n y: e.clientY\n };\n}\nfunction isImageNode(node) {\n var ref;\n return node.nodeName === 'IMG' && (isFirefox() || !((ref = document.documentElement) === null || ref === void 0 ? void 0 : ref.contains(node)));\n}\nfunction getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {\n let dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;\n let dragPreviewHeight = isImage ? dragPreview.height : sourceHeight;\n // Work around @2x coordinate discrepancies in browsers\n if (isSafari() && isImage) {\n dragPreviewHeight /= window.devicePixelRatio;\n dragPreviewWidth /= window.devicePixelRatio;\n }\n return {\n dragPreviewWidth,\n dragPreviewHeight\n };\n}\nexport function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {\n // The browsers will use the image intrinsic size under different conditions.\n // Firefox only cares if it's an image, but WebKit also wants it to be detached.\n const isImage = isImageNode(dragPreview);\n const dragPreviewNode = isImage ? sourceNode : dragPreview;\n const dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);\n const offsetFromDragPreview = {\n x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n y: clientOffset.y - dragPreviewNodeOffsetFromClient.y\n };\n const { offsetWidth: sourceWidth , offsetHeight: sourceHeight } = sourceNode;\n const { anchorX , anchorY } = anchorPoint;\n const { dragPreviewWidth , dragPreviewHeight } = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight);\n const calculateYOffset = ()=>{\n const interpolantY = new MonotonicInterpolant([\n 0,\n 0.5,\n 1\n ], [\n // Dock to the top\n offsetFromDragPreview.y,\n // Align at the center\n (offsetFromDragPreview.y / sourceHeight) * dragPreviewHeight,\n // Dock to the bottom\n offsetFromDragPreview.y + dragPreviewHeight - sourceHeight, \n ]);\n let y = interpolantY.interpolate(anchorY);\n // Work around Safari 8 positioning bug\n if (isSafari() && isImage) {\n // We'll have to wait for @3x to see if this is entirely correct\n y += (window.devicePixelRatio - 1) * dragPreviewHeight;\n }\n return y;\n };\n const calculateXOffset = ()=>{\n // Interpolate coordinates depending on anchor point\n // If you know a simpler way to do this, let me know\n const interpolantX = new MonotonicInterpolant([\n 0,\n 0.5,\n 1\n ], [\n // Dock to the left\n offsetFromDragPreview.x,\n // Align at the center\n (offsetFromDragPreview.x / sourceWidth) * dragPreviewWidth,\n // Dock to the right\n offsetFromDragPreview.x + dragPreviewWidth - sourceWidth, \n ]);\n return interpolantX.interpolate(anchorX);\n };\n // Force offsets if specified in the options.\n const { offsetX , offsetY } = offsetPoint;\n const isManualOffsetX = offsetX === 0 || offsetX;\n const isManualOffsetY = offsetY === 0 || offsetY;\n return {\n x: isManualOffsetX ? offsetX : calculateXOffset(),\n y: isManualOffsetY ? offsetY : calculateYOffset()\n };\n}\n\n//# sourceMappingURL=OffsetUtils.js.map","export class OptionsReader {\n get window() {\n if (this.globalContext) {\n return this.globalContext;\n } else if (typeof window !== 'undefined') {\n return window;\n }\n return undefined;\n }\n get document() {\n var ref;\n if ((ref = this.globalContext) === null || ref === void 0 ? void 0 : ref.document) {\n return this.globalContext.document;\n } else if (this.window) {\n return this.window.document;\n } else {\n return undefined;\n }\n }\n get rootElement() {\n var ref;\n return ((ref = this.optionsArgs) === null || ref === void 0 ? void 0 : ref.rootElement) || this.window;\n }\n constructor(globalContext, options){\n this.ownerDocument = null;\n this.globalContext = globalContext;\n this.optionsArgs = options;\n }\n}\n\n//# sourceMappingURL=OptionsReader.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nimport { EnterLeaveCounter } from './EnterLeaveCounter.js';\nimport { createNativeDragSource, matchNativeItemType } from './NativeDragSources/index.js';\nimport * as NativeTypes from './NativeTypes.js';\nimport { getDragPreviewOffset, getEventClientOffset, getNodeClientOffset } from './OffsetUtils.js';\nimport { OptionsReader } from './OptionsReader.js';\nexport class HTML5BackendImpl {\n /**\n\t * Generate profiling statistics for the HTML5Backend.\n\t */ profile() {\n var ref, ref1;\n return {\n sourcePreviewNodes: this.sourcePreviewNodes.size,\n sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,\n sourceNodeOptions: this.sourceNodeOptions.size,\n sourceNodes: this.sourceNodes.size,\n dragStartSourceIds: ((ref = this.dragStartSourceIds) === null || ref === void 0 ? void 0 : ref.length) || 0,\n dropTargetIds: this.dropTargetIds.length,\n dragEnterTargetIds: this.dragEnterTargetIds.length,\n dragOverTargetIds: ((ref1 = this.dragOverTargetIds) === null || ref1 === void 0 ? void 0 : ref1.length) || 0\n };\n }\n // public for test\n get window() {\n return this.options.window;\n }\n get document() {\n return this.options.document;\n }\n /**\n\t * Get the root element to use for event subscriptions\n\t */ get rootElement() {\n return this.options.rootElement;\n }\n setup() {\n const root = this.rootElement;\n if (root === undefined) {\n return;\n }\n if (root.__isReactDndBackendSetUp) {\n throw new Error('Cannot have two HTML5 backends at the same time.');\n }\n root.__isReactDndBackendSetUp = true;\n this.addEventListeners(root);\n }\n teardown() {\n const root = this.rootElement;\n if (root === undefined) {\n return;\n }\n root.__isReactDndBackendSetUp = false;\n this.removeEventListeners(this.rootElement);\n this.clearCurrentDragSourceNode();\n if (this.asyncEndDragFrameId) {\n var ref;\n (ref = this.window) === null || ref === void 0 ? void 0 : ref.cancelAnimationFrame(this.asyncEndDragFrameId);\n }\n }\n connectDragPreview(sourceId, node, options) {\n this.sourcePreviewNodeOptions.set(sourceId, options);\n this.sourcePreviewNodes.set(sourceId, node);\n return ()=>{\n this.sourcePreviewNodes.delete(sourceId);\n this.sourcePreviewNodeOptions.delete(sourceId);\n };\n }\n connectDragSource(sourceId, node, options) {\n this.sourceNodes.set(sourceId, node);\n this.sourceNodeOptions.set(sourceId, options);\n const handleDragStart = (e)=>this.handleDragStart(e, sourceId)\n ;\n const handleSelectStart = (e)=>this.handleSelectStart(e)\n ;\n node.setAttribute('draggable', 'true');\n node.addEventListener('dragstart', handleDragStart);\n node.addEventListener('selectstart', handleSelectStart);\n return ()=>{\n this.sourceNodes.delete(sourceId);\n this.sourceNodeOptions.delete(sourceId);\n node.removeEventListener('dragstart', handleDragStart);\n node.removeEventListener('selectstart', handleSelectStart);\n node.setAttribute('draggable', 'false');\n };\n }\n connectDropTarget(targetId, node) {\n const handleDragEnter = (e)=>this.handleDragEnter(e, targetId)\n ;\n const handleDragOver = (e)=>this.handleDragOver(e, targetId)\n ;\n const handleDrop = (e)=>this.handleDrop(e, targetId)\n ;\n node.addEventListener('dragenter', handleDragEnter);\n node.addEventListener('dragover', handleDragOver);\n node.addEventListener('drop', handleDrop);\n return ()=>{\n node.removeEventListener('dragenter', handleDragEnter);\n node.removeEventListener('dragover', handleDragOver);\n node.removeEventListener('drop', handleDrop);\n };\n }\n addEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.addEventListener) {\n return;\n }\n target.addEventListener('dragstart', this.handleTopDragStart);\n target.addEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.addEventListener('dragend', this.handleTopDragEndCapture, true);\n target.addEventListener('dragenter', this.handleTopDragEnter);\n target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.addEventListener('dragover', this.handleTopDragOver);\n target.addEventListener('dragover', this.handleTopDragOverCapture, true);\n target.addEventListener('drop', this.handleTopDrop);\n target.addEventListener('drop', this.handleTopDropCapture, true);\n }\n removeEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.removeEventListener) {\n return;\n }\n target.removeEventListener('dragstart', this.handleTopDragStart);\n target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.removeEventListener('dragend', this.handleTopDragEndCapture, true);\n target.removeEventListener('dragenter', this.handleTopDragEnter);\n target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.removeEventListener('dragover', this.handleTopDragOver);\n target.removeEventListener('dragover', this.handleTopDragOverCapture, true);\n target.removeEventListener('drop', this.handleTopDrop);\n target.removeEventListener('drop', this.handleTopDropCapture, true);\n }\n getCurrentSourceNodeOptions() {\n const sourceId = this.monitor.getSourceId();\n const sourceNodeOptions = this.sourceNodeOptions.get(sourceId);\n return _objectSpread({\n dropEffect: this.altKeyPressed ? 'copy' : 'move'\n }, sourceNodeOptions || {});\n }\n getCurrentDropEffect() {\n if (this.isDraggingNativeItem()) {\n // It makes more sense to default to 'copy' for native resources\n return 'copy';\n }\n return this.getCurrentSourceNodeOptions().dropEffect;\n }\n getCurrentSourcePreviewNodeOptions() {\n const sourceId = this.monitor.getSourceId();\n const sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);\n return _objectSpread({\n anchorX: 0.5,\n anchorY: 0.5,\n captureDraggingState: false\n }, sourcePreviewNodeOptions || {});\n }\n isDraggingNativeItem() {\n const itemType = this.monitor.getItemType();\n return Object.keys(NativeTypes).some((key)=>NativeTypes[key] === itemType\n );\n }\n beginDragNativeItem(type, dataTransfer) {\n this.clearCurrentDragSourceNode();\n this.currentNativeSource = createNativeDragSource(type, dataTransfer);\n this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);\n this.actions.beginDrag([\n this.currentNativeHandle\n ]);\n }\n setCurrentDragSourceNode(node) {\n this.clearCurrentDragSourceNode();\n this.currentDragSourceNode = node;\n // A timeout of > 0 is necessary to resolve Firefox issue referenced\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n const MOUSE_MOVE_TIMEOUT = 1000;\n // Receiving a mouse event in the middle of a dragging operation\n // means it has ended and the drag source node disappeared from DOM,\n // so the browser didn't dispatch the dragend event.\n //\n // We need to wait before we start listening for mousemove events.\n // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n // immediately in some browsers.\n //\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n //\n this.mouseMoveTimeoutTimer = setTimeout(()=>{\n var ref;\n return (ref = this.rootElement) === null || ref === void 0 ? void 0 : ref.addEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n }, MOUSE_MOVE_TIMEOUT);\n }\n clearCurrentDragSourceNode() {\n if (this.currentDragSourceNode) {\n this.currentDragSourceNode = null;\n if (this.rootElement) {\n var ref;\n (ref = this.window) === null || ref === void 0 ? void 0 : ref.clearTimeout(this.mouseMoveTimeoutTimer || undefined);\n this.rootElement.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n }\n this.mouseMoveTimeoutTimer = null;\n return true;\n }\n return false;\n }\n handleDragStart(e, sourceId) {\n if (e.defaultPrevented) {\n return;\n }\n if (!this.dragStartSourceIds) {\n this.dragStartSourceIds = [];\n }\n this.dragStartSourceIds.unshift(sourceId);\n }\n handleDragEnter(_e, targetId) {\n this.dragEnterTargetIds.unshift(targetId);\n }\n handleDragOver(_e, targetId) {\n if (this.dragOverTargetIds === null) {\n this.dragOverTargetIds = [];\n }\n this.dragOverTargetIds.unshift(targetId);\n }\n handleDrop(_e, targetId) {\n this.dropTargetIds.unshift(targetId);\n }\n constructor(manager, globalContext, options){\n this.sourcePreviewNodes = new Map();\n this.sourcePreviewNodeOptions = new Map();\n this.sourceNodes = new Map();\n this.sourceNodeOptions = new Map();\n this.dragStartSourceIds = null;\n this.dropTargetIds = [];\n this.dragEnterTargetIds = [];\n this.currentNativeSource = null;\n this.currentNativeHandle = null;\n this.currentDragSourceNode = null;\n this.altKeyPressed = false;\n this.mouseMoveTimeoutTimer = null;\n this.asyncEndDragFrameId = null;\n this.dragOverTargetIds = null;\n this.lastClientOffset = null;\n this.hoverRafId = null;\n this.getSourceClientOffset = (sourceId)=>{\n const source = this.sourceNodes.get(sourceId);\n return source && getNodeClientOffset(source) || null;\n };\n this.endDragNativeItem = ()=>{\n if (!this.isDraggingNativeItem()) {\n return;\n }\n this.actions.endDrag();\n if (this.currentNativeHandle) {\n this.registry.removeSource(this.currentNativeHandle);\n }\n this.currentNativeHandle = null;\n this.currentNativeSource = null;\n };\n this.isNodeInDocument = (node)=>{\n // Check the node either in the main document or in the current context\n return Boolean(node && this.document && this.document.body && this.document.body.contains(node));\n };\n this.endDragIfSourceWasRemovedFromDOM = ()=>{\n const node = this.currentDragSourceNode;\n if (node == null || this.isNodeInDocument(node)) {\n return;\n }\n if (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n this.actions.endDrag();\n }\n this.cancelHover();\n };\n this.scheduleHover = (dragOverTargetIds)=>{\n if (this.hoverRafId === null && typeof requestAnimationFrame !== 'undefined') {\n this.hoverRafId = requestAnimationFrame(()=>{\n if (this.monitor.isDragging()) {\n this.actions.hover(dragOverTargetIds || [], {\n clientOffset: this.lastClientOffset\n });\n }\n this.hoverRafId = null;\n });\n }\n };\n this.cancelHover = ()=>{\n if (this.hoverRafId !== null && typeof cancelAnimationFrame !== 'undefined') {\n cancelAnimationFrame(this.hoverRafId);\n this.hoverRafId = null;\n }\n };\n this.handleTopDragStartCapture = ()=>{\n this.clearCurrentDragSourceNode();\n this.dragStartSourceIds = [];\n };\n this.handleTopDragStart = (e)=>{\n if (e.defaultPrevented) {\n return;\n }\n const { dragStartSourceIds } = this;\n this.dragStartSourceIds = null;\n const clientOffset = getEventClientOffset(e);\n // Avoid crashing if we missed a drop event or our previous drag died\n if (this.monitor.isDragging()) {\n this.actions.endDrag();\n this.cancelHover();\n }\n // Don't publish the source just yet (see why below)\n this.actions.beginDrag(dragStartSourceIds || [], {\n publishSource: false,\n getSourceClientOffset: this.getSourceClientOffset,\n clientOffset\n });\n const { dataTransfer } = e;\n const nativeType = matchNativeItemType(dataTransfer);\n if (this.monitor.isDragging()) {\n if (dataTransfer && typeof dataTransfer.setDragImage === 'function') {\n // Use custom drag image if user specifies it.\n // If child drag source refuses drag but parent agrees,\n // use parent's node as drag image. Neither works in IE though.\n const sourceId = this.monitor.getSourceId();\n const sourceNode = this.sourceNodes.get(sourceId);\n const dragPreview = this.sourcePreviewNodes.get(sourceId) || sourceNode;\n if (dragPreview) {\n const { anchorX , anchorY , offsetX , offsetY } = this.getCurrentSourcePreviewNodeOptions();\n const anchorPoint = {\n anchorX,\n anchorY\n };\n const offsetPoint = {\n offsetX,\n offsetY\n };\n const dragPreviewOffset = getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);\n dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);\n }\n }\n try {\n // Firefox won't drag without setting data\n dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {});\n } catch (err) {\n // IE doesn't support MIME types in setData\n }\n // Store drag source node so we can check whether\n // it is removed from DOM and trigger endDrag manually.\n this.setCurrentDragSourceNode(e.target);\n // Now we are ready to publish the drag source.. or are we not?\n const { captureDraggingState } = this.getCurrentSourcePreviewNodeOptions();\n if (!captureDraggingState) {\n // Usually we want to publish it in the next tick so that browser\n // is able to screenshot the current (not yet dragging) state.\n //\n // It also neatly avoids a situation where render() returns null\n // in the same tick for the source element, and browser freaks out.\n setTimeout(()=>this.actions.publishDragSource()\n , 0);\n } else {\n // In some cases the user may want to override this behavior, e.g.\n // to work around IE not supporting custom drag previews.\n //\n // When using a custom drag layer, the only way to prevent\n // the default drag preview from drawing in IE is to screenshot\n // the dragging state in which the node itself has zero opacity\n // and height. In this case, though, returning null from render()\n // will abruptly end the dragging, which is not obvious.\n //\n // This is the reason such behavior is strictly opt-in.\n this.actions.publishDragSource();\n }\n } else if (nativeType) {\n // A native item (such as URL) dragged from inside the document\n this.beginDragNativeItem(nativeType);\n } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {\n // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n // Just let it drag. It's a native type (URL or text) and will be picked up in\n // dragenter handler.\n return;\n } else {\n // If by this time no drag source reacted, tell browser not to drag.\n e.preventDefault();\n }\n };\n this.handleTopDragEndCapture = ()=>{\n if (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n // Firefox can dispatch this event in an infinite loop\n // if dragend handler does something like showing an alert.\n // Only proceed if we have not handled it already.\n this.actions.endDrag();\n }\n this.cancelHover();\n };\n this.handleTopDragEnterCapture = (e)=>{\n this.dragEnterTargetIds = [];\n if (this.isDraggingNativeItem()) {\n var ref;\n (ref = this.currentNativeSource) === null || ref === void 0 ? void 0 : ref.loadDataTransfer(e.dataTransfer);\n }\n const isFirstEnter = this.enterLeaveCounter.enter(e.target);\n if (!isFirstEnter || this.monitor.isDragging()) {\n return;\n }\n const { dataTransfer } = e;\n const nativeType = matchNativeItemType(dataTransfer);\n if (nativeType) {\n // A native item (such as file or URL) dragged from outside the document\n this.beginDragNativeItem(nativeType, dataTransfer);\n }\n };\n this.handleTopDragEnter = (e)=>{\n const { dragEnterTargetIds } = this;\n this.dragEnterTargetIds = [];\n if (!this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n return;\n }\n this.altKeyPressed = e.altKey;\n // If the target changes position as the result of `dragenter`, `dragover` might still\n // get dispatched despite target being no longer there. The easy solution is to check\n // whether there actually is a target before firing `hover`.\n if (dragEnterTargetIds.length > 0) {\n this.actions.hover(dragEnterTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n }\n const canDrop = dragEnterTargetIds.some((targetId)=>this.monitor.canDropOnTarget(targetId)\n );\n if (canDrop) {\n // IE requires this to fire dragover events\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = this.getCurrentDropEffect();\n }\n }\n };\n this.handleTopDragOverCapture = (e)=>{\n this.dragOverTargetIds = [];\n if (this.isDraggingNativeItem()) {\n var ref;\n (ref = this.currentNativeSource) === null || ref === void 0 ? void 0 : ref.loadDataTransfer(e.dataTransfer);\n }\n };\n this.handleTopDragOver = (e)=>{\n const { dragOverTargetIds } = this;\n this.dragOverTargetIds = [];\n if (!this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n // Prevent default \"drop and blow away the whole document\" action.\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n return;\n }\n this.altKeyPressed = e.altKey;\n this.lastClientOffset = getEventClientOffset(e);\n this.scheduleHover(dragOverTargetIds);\n const canDrop = (dragOverTargetIds || []).some((targetId)=>this.monitor.canDropOnTarget(targetId)\n );\n if (canDrop) {\n // Show user-specified drop effect.\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = this.getCurrentDropEffect();\n }\n } else if (this.isDraggingNativeItem()) {\n // Don't show a nice cursor but still prevent default\n // \"drop and blow away the whole document\" action.\n e.preventDefault();\n } else {\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n }\n };\n this.handleTopDragLeaveCapture = (e)=>{\n if (this.isDraggingNativeItem()) {\n e.preventDefault();\n }\n const isLastLeave = this.enterLeaveCounter.leave(e.target);\n if (!isLastLeave) {\n return;\n }\n if (this.isDraggingNativeItem()) {\n setTimeout(()=>this.endDragNativeItem()\n , 0);\n }\n this.cancelHover();\n };\n this.handleTopDropCapture = (e)=>{\n this.dropTargetIds = [];\n if (this.isDraggingNativeItem()) {\n var ref;\n e.preventDefault();\n (ref = this.currentNativeSource) === null || ref === void 0 ? void 0 : ref.loadDataTransfer(e.dataTransfer);\n } else if (matchNativeItemType(e.dataTransfer)) {\n // Dragging some elements, like <a> and <img> may still behave like a native drag event,\n // even if the current drag event matches a user-defined type.\n // Stop the default behavior when we're not expecting a native item to be dropped.\n e.preventDefault();\n }\n this.enterLeaveCounter.reset();\n };\n this.handleTopDrop = (e)=>{\n const { dropTargetIds } = this;\n this.dropTargetIds = [];\n this.actions.hover(dropTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n this.actions.drop({\n dropEffect: this.getCurrentDropEffect()\n });\n if (this.isDraggingNativeItem()) {\n this.endDragNativeItem();\n } else if (this.monitor.isDragging()) {\n this.actions.endDrag();\n }\n this.cancelHover();\n };\n this.handleSelectStart = (e)=>{\n const target = e.target;\n // Only IE requires us to explicitly say\n // we want drag drop operation to start\n if (typeof target.dragDrop !== 'function') {\n return;\n }\n // Inputs and textareas should be selectable\n if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return;\n }\n // For other targets, ask IE\n // to enable drag and drop\n e.preventDefault();\n target.dragDrop();\n };\n this.options = new OptionsReader(globalContext, options);\n this.actions = manager.getActions();\n this.monitor = manager.getMonitor();\n this.registry = manager.getRegistry();\n this.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument);\n }\n}\n\n//# sourceMappingURL=HTML5BackendImpl.js.map","import { HTML5BackendImpl } from './HTML5BackendImpl.js';\nimport * as _NativeTypes from './NativeTypes.js';\nexport { getEmptyImage } from './getEmptyImage.js';\nexport { _NativeTypes as NativeTypes };\nexport const HTML5Backend = function createBackend(manager, context, options) {\n return new HTML5BackendImpl(manager, context, options);\n};\n\n//# sourceMappingURL=index.js.map","\"use client\";\nimport React from \"react\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\n\nexport function DDContext({ children }) {\n return <DndProvider backend={HTML5Backend}>{children}</DndProvider>;\n}\n"],"names":["simplifyTree","uid","getValue","getVal","primitives","_a","add","math","create","all","subtract","graft","trim","simplify","Util","Math","List","Sequence","Tree","Logic","IO","createContext","without","verifyInvariants","_defineProperty","_objectSpread","reduce","initialState","dirtyHandlerIds","dragOffset","refCount","dragOperation","stateId","memo","useEffect","_jsx","useLayoutEffect","useState","useCallback","useMemo","isValidElement","cloneElement","useContext","styles","Handle","Position","useReactFlow","useLongPress","compStyles","persist","useConnection","getSimpleBezierPath","useOnSelectionChange","applyNodeChanges","applyEdgeChanges","ReactFlow","Background","BackgroundVariant","Controls","ReactFlowProvider","NativeTypes.FILE","NativeTypes.HTML","NativeTypes.URL","NativeTypes.TEXT"],"mappings":"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","x_google_ignoreList":[0,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,136,137,138,139,140,141,142,143,144,145,146,147,148]}
1
+ {"version":3,"file":"index.cjs.js","sources":["../node_modules/tslib/tslib.es6.js","../src/lib/DataTree/index.ts","../src/lib/DataTree/util.ts","../src/lib/Engine/util.ts","../src/lib/Primitives/Util/getValue.ts","../src/lib/Primitives/Util/log.ts","../src/lib/Primitives/Util/value.ts","../src/lib/Primitives/Util/index.ts","../src/lib/Primitives/Math/add.ts","../src/lib/Primitives/Math/calc.ts","../src/lib/Primitives/Math/cos.ts","../src/lib/Primitives/Math/divide.ts","../src/lib/Primitives/Math/equalTo.ts","../src/lib/Primitives/Math/greaterThan.ts","../src/lib/Primitives/Math/lessThan.ts","../src/lib/Primitives/Math/modulo.ts","../src/lib/Primitives/Math/multiply.ts","../src/lib/Primitives/Math/pow.ts","../src/lib/Primitives/Math/sin.ts","../src/lib/Primitives/Math/sqrt.ts","../src/lib/Primitives/Math/subtract.ts","../src/lib/Primitives/Math/tan.ts","../src/lib/Primitives/Math/index.ts","../src/lib/Primitives/List/filterList.ts","../src/lib/Primitives/List/splitGroup.ts","../src/lib/Primitives/List/listItem.ts","../src/lib/Primitives/List/listLength.ts","../src/lib/Primitives/List/mergeGroup.ts","../src/lib/Primitives/List/cartesianGroups.ts","../src/lib/Primitives/List/concat.ts","../src/lib/Primitives/List/relativeItem.ts","../src/lib/Primitives/List/relativeItems.ts","../src/lib/Primitives/List/index.ts","../src/lib/Primitives/Sequence/series.ts","../src/lib/Primitives/Sequence/index.ts","../src/lib/Primitives/Tree/mergeTree.ts","../src/lib/Primitives/Tree/simplifyTree.ts","../src/lib/Primitives/Tree/index.ts","../src/lib/Primitives/Logic/groupAnd.ts","../src/lib/Primitives/Logic/groupOr.ts","../src/lib/Primitives/Logic/index.ts","../src/lib/Primitives/IO/input.ts","../src/lib/Primitives/IO/output.ts","../src/lib/Primitives/IO/index.ts","../src/lib/Primitives/index.ts","../src/lib/Engine/Rule.ts","../src/lib/Engine/index.ts","../node_modules/react-dnd/dist/core/DndContext.js","../node_modules/redux/es/redux.js","../node_modules/@react-dnd/invariant/dist/index.js","../node_modules/dnd-core/dist/utils/js_utils.js","../node_modules/dnd-core/dist/actions/dragDrop/types.js","../node_modules/dnd-core/dist/actions/dragDrop/local/setClientOffset.js","../node_modules/dnd-core/dist/actions/dragDrop/beginDrag.js","../node_modules/dnd-core/dist/actions/dragDrop/drop.js","../node_modules/dnd-core/dist/actions/dragDrop/endDrag.js","../node_modules/dnd-core/dist/utils/matchesType.js","../node_modules/dnd-core/dist/actions/dragDrop/hover.js","../node_modules/dnd-core/dist/actions/dragDrop/publishDragSource.js","../node_modules/dnd-core/dist/actions/dragDrop/index.js","../node_modules/dnd-core/dist/classes/DragDropManagerImpl.js","../node_modules/dnd-core/dist/utils/coords.js","../node_modules/dnd-core/dist/utils/dirtiness.js","../node_modules/dnd-core/dist/classes/DragDropMonitorImpl.js","../node_modules/@react-dnd/asap/dist/makeRequestCall.js","../node_modules/@react-dnd/asap/dist/AsapQueue.js","../node_modules/@react-dnd/asap/dist/RawTask.js","../node_modules/@react-dnd/asap/dist/TaskFactory.js","../node_modules/@react-dnd/asap/dist/asap.js","../node_modules/dnd-core/dist/actions/registry.js","../node_modules/dnd-core/dist/contracts.js","../node_modules/dnd-core/dist/interfaces.js","../node_modules/dnd-core/dist/utils/getNextUniqueId.js","../node_modules/dnd-core/dist/classes/HandlerRegistryImpl.js","../node_modules/dnd-core/dist/utils/equality.js","../node_modules/dnd-core/dist/reducers/dirtyHandlerIds.js","../node_modules/dnd-core/dist/reducers/dragOffset.js","../node_modules/dnd-core/dist/reducers/dragOperation.js","../node_modules/dnd-core/dist/reducers/refCount.js","../node_modules/dnd-core/dist/reducers/stateId.js","../node_modules/dnd-core/dist/reducers/index.js","../node_modules/dnd-core/dist/createDragDropManager.js","../node_modules/react-dnd/dist/core/DndProvider.js","../node_modules/fast-deep-equal/index.js","../node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js","../node_modules/react-dnd/dist/hooks/useCollector.js","../node_modules/react-dnd/dist/hooks/useMonitorOutput.js","../node_modules/react-dnd/dist/hooks/useCollectedProps.js","../node_modules/react-dnd/dist/hooks/useOptionalFactory.js","../node_modules/react-dnd/dist/hooks/useDrag/connectors.js","../node_modules/react-dnd/dist/internals/DragSourceMonitorImpl.js","../node_modules/react-dnd/dist/internals/DropTargetMonitorImpl.js","../node_modules/react-dnd/dist/internals/registration.js","../node_modules/@react-dnd/shallowequal/dist/index.js","../node_modules/react-dnd/dist/internals/isRef.js","../node_modules/react-dnd/dist/internals/wrapConnectorHooks.js","../node_modules/react-dnd/dist/internals/SourceConnector.js","../node_modules/react-dnd/dist/internals/TargetConnector.js","../node_modules/react-dnd/dist/hooks/useDragDropManager.js","../node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js","../node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js","../node_modules/react-dnd/dist/hooks/useDrag/DragSourceImpl.js","../node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js","../node_modules/react-dnd/dist/hooks/useDrag/useDragType.js","../node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js","../node_modules/react-dnd/dist/hooks/useDrag/useDrag.js","../node_modules/react-dnd/dist/hooks/useDrop/connectors.js","../node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.js","../node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js","../node_modules/react-dnd/dist/hooks/useDrop/useAccept.js","../node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js","../node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js","../node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js","../node_modules/react-dnd/dist/hooks/useDrop/useDrop.js","../src/lib/Flow/Context.tsx","../src/lib/Flow/Components/Control.tsx","../src/lib/Flow/Components/Input.tsx","../src/lib/Flow/Components/Param.tsx","../src/lib/Flow/Components/Output.tsx","../src/lib/Flow/Components/NodeContainer.tsx","../src/lib/Flow/Nodes/Log.tsx","../src/lib/Flow/Components/GenericNode.tsx","../src/lib/Flow/Nodes/Calc.tsx","../src/lib/Flow/Nodes/Default.tsx","../src/lib/Flow/Components/Menu.tsx","../src/lib/Flow/Nodes/Input.tsx","../src/lib/Flow/Nodes/Merge.tsx","../src/lib/Flow/Nodes/Output.tsx","../src/lib/Flow/Nodes/index.ts","../src/lib/hooks/useVariable.ts","../src/lib/hooks/usePositions.ts","../src/lib/hooks/useFlow.ts","../src/lib/Flow/Components/ConnectionLine.tsx","../src/lib/Flow/index.tsx","../src/lib/hooks/useDraggableNode.ts","../src/lib/hooks/useFunction.ts","../node_modules/react-dnd-html5-backend/dist/utils/js_utils.js","../node_modules/react-dnd-html5-backend/dist/EnterLeaveCounter.js","../node_modules/react-dnd-html5-backend/dist/NativeDragSources/NativeDragSource.js","../node_modules/react-dnd-html5-backend/dist/NativeTypes.js","../node_modules/react-dnd-html5-backend/dist/NativeDragSources/getDataFromDataTransfer.js","../node_modules/react-dnd-html5-backend/dist/NativeDragSources/nativeTypesConfig.js","../node_modules/react-dnd-html5-backend/dist/NativeDragSources/index.js","../node_modules/react-dnd-html5-backend/dist/BrowserDetector.js","../node_modules/react-dnd-html5-backend/dist/MonotonicInterpolant.js","../node_modules/react-dnd-html5-backend/dist/OffsetUtils.js","../node_modules/react-dnd-html5-backend/dist/OptionsReader.js","../node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js","../node_modules/react-dnd-html5-backend/dist/index.js","../src/lib/ddcontext.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { Tree } from \"./types\";\n\nexport * from \"./types\";\n\nexport const DISCARD = Symbol(\"DISCARD\");\n\n/**\n * removes the common prefix from the paths in the tree\n * @param tree\n * @returns\n */\nexport function simplifyTree<T>(tree: Tree<T>): Tree<T> {\n const keys = Object.keys(tree);\n if (keys.length <= 1) return tree; // ✅ Don't simplify if only one path\n\n // Parse all paths into number arrays\n const parsedPaths = keys.map((path) => path.split(\";\").map(Number));\n\n // Find common prefix\n let prefixLength = parsedPaths[0].length;\n for (let i = 1; i < parsedPaths.length; i++) {\n const path = parsedPaths[i];\n for (let j = 0; j < prefixLength; j++) {\n if (path[j] !== parsedPaths[0][j]) {\n prefixLength = j;\n break;\n }\n }\n }\n\n const simplified: Tree<T> = {};\n\n for (let i = 0; i < parsedPaths.length; i++) {\n const oldPath = keys[i];\n const newPath = parsedPaths[i].slice(prefixLength).join(\";\");\n\n simplified[newPath] = tree[oldPath];\n }\n\n return simplified;\n}\n\n/**\n * Expands a tree by applying a function to each item in the tree.\n * @param tree\n * @param fn\n * @returns\n */\nexport function expandTree<T, U>(\n tree: Tree<T>,\n fn: (item: T, path: string, index: number) => U[]\n): Tree<U> {\n const result: Tree<U> = {};\n\n for (const path in tree) {\n const items = tree[path];\n\n items.forEach((item, i) => {\n const subpath = `${path};${i}`; // Create new sub-branch per item\n const expandedItems = fn(item, path, i); // Apply function\n\n // if (expandedItems.length > 0) {\n result[subpath] = expandedItems;\n // }\n });\n }\n\n return result;\n}\n\n/**\n * Creates a new branch for each item in the existing tree branches\n * @param tree\n * @returns\n */\nexport function graftTree<T>(tree: Tree<T>): Tree<T> {\n return Object.fromEntries(\n Object.entries(tree as Tree<any>).reduce((entries, [path, values]) => {\n entries.push(\n ...values.map(\n (value, index) =>\n [path + \";\" + index, [value]] as [string, any[]]\n )\n );\n return entries;\n }, [] as [string, any[]][])\n );\n}\n\n/**\n * Reduce the complexity of a tree by merging the outermost branches.\n * @param tree\n */\nexport function trimTree<T>(tree: Tree<T>, depth = 1): Tree<T> {\n if (depth <= 0) return tree;\n\n const result: Tree<T> = {};\n for (const path in tree) {\n const parts = path.split(\";\");\n // leave at least a path length of 1\n const end = depth >= parts.length ? 1 : -depth;\n const newPath = parts.slice(0, end).join(\";\");\n if (!result[newPath]) {\n result[newPath] = [];\n }\n // flatten onto new branch\n result[newPath].push(...tree[path]);\n }\n return result;\n}\n\n/**\n * checks if the given structure is a data tree\n */\nexport function isTree(value: any): value is Tree<any> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value) &&\n Object.keys(value).length > 0 &&\n Object.values(value).every((v) => Array.isArray(v))\n );\n}\n\nexport function isSingleTon(value: Tree<any>): boolean {\n return (\n Object.keys(value).length === 1 && Object.values(value)[0].length === 1\n );\n}\n\n/**\n * turns a value or array of values into a tree\n * - a single value becomes a tree with one branch \"0\" and one item\n * - an array of values becomes a tree with one branch \"0\" and the items in the array\n * - a tree is returned as is\n */\nexport function broadCast<T>(value: T | T[] | Tree<T>): Tree<T> {\n if (Array.isArray(value)) {\n return { \"0\": value };\n }\n if (isTree(value)) {\n return value;\n }\n return { \"0\": [value] };\n}\n\nexport function getBranch<T>(tree: Tree<T>, path: string): T[] | void {\n return tree[path];\n}\n\nexport function getPaths<T>(tree: Tree<T>): string[] {\n return Object.keys(tree);\n}\n\n/**\n * maps a tree, the tree branches are flatmapped, so if an array is returned for each item in the list, a flat list is returned\n * @param tree\n * @param fn\n * @returns\n */\nexport function mapTree<T, U>(\n tree: Tree<T>,\n fn: (item: T, path: string, index: number) => U | U[] | typeof DISCARD\n): Tree<U> {\n return nAryOnTree([tree], function mapTreeCallback([item], [path], index) {\n return fn(item, path, index);\n });\n}\n\nexport function mapTreeBranch<T, U>(\n tree: Tree<T>,\n fn: (branch: T[], path: string) => U[] | typeof DISCARD\n): Tree<U> {\n return nAryOnTreeBranch(\n [tree],\n function mapTreeBranchCallback([branch], [path]) {\n return fn(branch || [], path);\n }\n );\n}\n\n/**\n * n-ary operation on a tree, branch by branch\n * - branches are matched by index,\n * - last branches are repeated when the branch count differs\n * - branch names from the longest or first tree are used\n * - if a corresponding index does not exist in the branch, its item argument is undefined\n * - the callback function is called with (items, paths)\n * @param trees\n * @param fn\n * @returns\n */\nexport function nAryOnTreeBranch<V>(\n trees: Tree<any>[],\n fn: (\n branches: (any[] | undefined)[],\n paths: string[]\n ) => V[] | typeof DISCARD\n): Tree<V> {\n const result: Tree<V> = {};\n const allKeys = trees.map((tree) => Object.keys(tree));\n const maxBranches = Math.max(...allKeys.map((keys) => keys.length));\n\n // if (!trees.every((t) => Object.keys(t).length > 0)) {\n // return result;\n // }\n\n for (let i = 0; i < maxBranches; i++) {\n const paths = allKeys.map((keys) => keys[Math.min(i, keys.length - 1)]);\n const branches = trees.map((tree) => tree[paths[trees.indexOf(tree)]]);\n\n // get all the paths of which the trees are the longest, use the first\n const maxPaths = paths.filter(\n (_, i) => allKeys[i].length === maxBranches\n );\n const path = maxPaths[0];\n\n const newBranch = fn(branches, paths);\n if (newBranch !== DISCARD) {\n result[path] = newBranch;\n }\n }\n\n return result;\n}\n\n/**\n * n-ary operation on a tree, branch by branch\n * - branches are matched by index,\n * - last branches are repeated when the branch count differs\n * - branch names from the longest or first tree are used\n * - if a corresponding index does not exist in the branch, its item argument is undefined\n * - the callback function is called with (items, paths, index)\n * - return DISCARD to not add the item to the branch\n * @param trees\n * @param fn\n * @returns\n */\nexport function nAryOnTree<R>(\n trees: Tree<any>[],\n fn: (\n items: any[],\n paths: string[],\n index: number\n ) => R | R[] | typeof DISCARD,\n fill?: boolean\n): Tree<R> {\n return nAryOnTreeBranch(\n trees,\n function nAryOnTreeCallback(branches, paths) {\n const maxLength = Math.max(...branches.map((b = []) => b.length));\n let results: R[] = [];\n for (let i = 0; i < maxLength; i++) {\n const items = branches.map((b = []) => {\n if (fill) {\n // repeat last item if index exceeds branch length\n return b[Math.min(i, b.length - 1)];\n }\n return b[i];\n });\n const result = fn(items, paths, i);\n if (result !== DISCARD) {\n results = results.concat(result);\n }\n }\n\n return results;\n }\n );\n}\n\n/**\n * binary operation on a tree, branch by branch\n * - branches are matched by index,\n * - last branches are repeated when the branch count differs\n * - branch names from the longest or first tree are used\n * - if a corresponding index does not exist in the branch, its item argument is undefined\n * - the callback function is called with (itemA, itemB, pathA, pathB)\n * @param treeA\n * @param treeB\n * @param fn\n * @returns\n */\nexport function binaryOnTreeBranch<T, U, V>(\n treeA: Tree<T>,\n treeB: Tree<U>,\n fn: (\n branchA: T[],\n branchB: U[],\n pathA: string,\n pathB: string\n ) => V[] | typeof DISCARD\n): Tree<V> {\n return nAryOnTreeBranch(\n [treeA, treeB],\n function binaryOnTreeBranchCallback(\n [branchA, branchB],\n [pathA, pathB]\n ) {\n return fn(branchA || [], branchB || [], pathA, pathB);\n }\n );\n}\n\n/**\n * binary operation on a tree, branch by branch\n * - branches are matched by index,\n * - last branches are repeated when the branch count differs\n * - branch names from the longest or first tree are used\n * - if a corresponding index does not exist in the branch, its item argument is undefined\n * - the callback function is called with (itemA, itemB, pathA, pathB, index)\n * @param treeA\n * @param treeB\n * @param fn\n * @returns\n */\nexport function binaryOnTree<T, U, V>(\n treeA: Tree<T>,\n treeB: Tree<U>,\n fn: (\n itemA: T | undefined,\n itemB: U | undefined,\n pathA: string,\n pathB: string,\n index: number\n ) => V | V[] | typeof DISCARD,\n fill?: boolean\n): Tree<V> {\n return nAryOnTree(\n [treeA, treeB],\n function binaryOnTreeCallback([itemA, itemB], [pathA, pathB], index) {\n return fn(itemA, itemB, pathA, pathB, index);\n },\n fill\n );\n}\n\nexport function treeSize<T>(tree: Tree<T>): number {\n return Object.keys(tree).length;\n}\n\nexport function sameShape(a: Tree<any>, b: Tree<any>) {\n let sa = Object.keys(a).sort().join(\"|\");\n let sb = Object.keys(b).sort().join(\"|\");\n return sa === sb;\n}\n\n/**\n * flattens the whole tree into an array\n */\nexport function toArray<T>(a: Tree<T>): T[] {\n return Object.values(a).flat();\n}\n","// utilities\n\nimport { Path, Tree } from \"./types\";\n\n/**\n * small utilities for path manipulation and tree manipulation\n */\n\n/**\n * trims leading and trailing semicolons from a path\n * @param p\n * @returns\n */\nexport function norm(p: Path) {\n return p.replace(/^;+|;+$/g, \"\");\n}\n\n/**\n * joins two paths with a semicolon, normalizing them first\n * @param a\n * @param b\n * @returns\n */\nexport function joinPath(a: Path, b: Path) {\n return [norm(a), norm(b)].filter(Boolean).join(\";\"); // \"\" + \"0;1\" -> \"0;1\"\n}\n\n/**\n * merges two trees by concatenating the branches with the same path\n * @param a\n * @param b\n * @returns\n */\nexport function mergeTrees<T>(...others: Tree<T>[]): Tree<T> {\n const a = others.shift() || { 0: [] };\n const out: Tree<T> = { ...a };\n others.forEach((b) => {\n for (const [k, arr] of Object.entries(b)) {\n out[k] = (out[k] ?? []).concat(arr);\n }\n });\n return out;\n}\n\n/**\n * prefixes all paths in the tree with the given prefix\n * @param t\n * @param prefix\n * @returns\n */\nexport function prefixPaths<T>(t: Tree<T>, prefix: Path): Tree<T> {\n if (!prefix || prefix === \"\") return t;\n const out: Tree<T> = {};\n for (const [k, arr] of Object.entries(t)) {\n out[joinPath(prefix, k)] = arr.slice();\n }\n return out;\n}\n","import {\n broadCast,\n isTree,\n mapTree,\n mapTreeBranch,\n nAryOnTree,\n nAryOnTreeBranch,\n Tree,\n} from \"../DataTree\";\nimport { mergeTrees } from \"../DataTree/util\";\nimport { VarRef, VarRefValue } from \"./types\";\n\nexport function isReference(value: any): value is string {\n return (\n typeof value === \"string\" && !!value.match(/^<([\\w\\.]+)>$/)\n // value.startsWith(\"<\") &&\n // value.endsWith(\">\")\n );\n}\n\nexport function hasReference(value: any): value is string {\n return typeof value === \"string\" && !!value.match?.(/<(.*?)>/g);\n}\n\nexport function parseReference(ref: string) {\n return ref.slice(1, -1);\n}\n\nexport function uid() {\n return Math.random().toString(36).substring(2, 15);\n}\n\nexport function getValue(obj: Record<string, any>, path: string) {\n if (!(obj && path)) {\n return;\n }\n const parts = path.split(\".\");\n let value: any = obj[parts.shift() || \"\"];\n while (parts.length && value) {\n value = value[parts.shift() || \"\"];\n }\n return value;\n}\n\nfunction interpolateValue(\n value: VarRefValue | VarRefValue[],\n scope: Record<string, Record<string, Tree<any>>>\n): any {\n // interpolating arrays\n if (Array.isArray(value)) {\n if (!value.length) return [];\n if (value.every(isTree)) {\n // array of trees: merge the trees into one\n const tree = mergeTrees(...(value as Tree<any>[]));\n // then interpolate each value in the tree in case there are references\n return mapTree(tree, (v) => interpolateValue(v, scope));\n } else {\n // array of other values: interpolate to an array of trees\n let mappedValue = value.map((v) =>\n broadCast(interpolateValue(v, scope))\n );\n if (!mappedValue.every(isTree)) {\n // this is a bit of a hack when the values were all plain values\n // in that case, just return them, which will result in a single tree\n return mappedValue;\n }\n\n // then, for each value, combine the branches with the same index\n return mergeTrees(...(mappedValue as Tree<any>[]));\n }\n }\n // a tree is mapped over each value\n if (isTree(value)) {\n return mapTree(value, (v) => interpolateValue(v, scope));\n }\n // an object is interpolated recursively\n if (typeof value === \"object\" && value !== null) {\n if (Object.keys(value).length === 0) {\n return {};\n }\n // interpolate to a record of trees:\n let interpolated = interpolate(value as VarRef, scope);\n\n // then, for each value, combine the branches with the same index\n const keys = Object.keys(interpolated);\n return nAryOnTree(Object.values(interpolated), (items) => {\n return Object.fromEntries(\n items.map((item, keyIndex) => {\n return [keys[keyIndex], item];\n })\n );\n });\n }\n if (hasReference(value)) {\n if (isReference(value)) {\n // it's a simple reference string\n const parts = parseReference(value).split(\".\");\n let mappedValue = getValue(scope, parts.slice(0, 2).join(\".\"));\n if (parts.length > 2) {\n // deep interpolate\n mappedValue = mapTree(mappedValue, (v: any) =>\n getValue(v, parts.slice(2).join(\".\"))\n );\n }\n return mappedValue;\n } else {\n // it's a template string, break up as an array of strings and references and interpolate each to a tree\n const strings = (value as string).split(/(<.*?>)/);\n const trees = strings.map((str) =>\n broadCast(interpolateValue(str, scope))\n );\n // create a combined string for each item, filling in missing items witht the last\n const combined = nAryOnTree(\n trees,\n (items) => {\n return items.join(\"\");\n },\n true\n );\n return combined;\n }\n }\n return value;\n}\n\nexport function interpolate(\n inputs: VarRef,\n scope: Record<string, Record<string, Tree<any>>>\n): Record<string, Tree<any>> {\n return Object.fromEntries(\n Object.entries(inputs).map(([key, value]) => {\n let mappedValue = interpolateValue(value, scope);\n return [key, broadCast(mappedValue)];\n })\n );\n}\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { DISCARD, mapTree, toArray } from \"../../DataTree\";\nimport { getValue as getVal } from \"../../Engine/util\";\n\n/**\n * TODO: need rank polymorhism on the tree item sizes\n */\nexport const getValue: PrimitiveFunction = {\n name: \"getValue\",\n label: \"Get Value\",\n description: \"Get a value from an object at a specified path.\",\n inputs: {\n tree: \"any\",\n path: \"string\",\n },\n outputs: {\n tree: \"any\",\n },\n // TODO: may want to do something with other values of path\n impl: async (inputs, params) => {\n const paths = toArray<string>(inputs.path || {});\n const tree = mapTree(inputs.tree || {}, (value) => {\n // get the property from the object\n let val = getVal(value, paths[0]);\n return val;\n });\n\n return { tree };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\n\nexport const log: PrimitiveFunction = {\n name: \"log\",\n label: \"Log\",\n description: \"Logs the input data to the console\",\n nodeType: \"Log\",\n inputs: {\n data: \"any\",\n },\n outputs: {\n data: \"any\", // Return the data for potential further use\n },\n impl: async (input) => {\n console.table(input.data);\n return {\n data: input.data, // Return the data for potential further use\n };\n },\n};\n","import { broadCast } from \"../../DataTree\";\nimport { PrimitiveFunction } from \"../../Engine\";\n\n/**\n * value primitive function\n */\nexport const value: PrimitiveFunction = {\n name: \"value\",\n label: \"Value\",\n description: \"Outputs a constant value of a specified type\",\n inputs: {},\n params: {\n value: \"string\",\n type: {\n type: \"string\",\n default: \"number\",\n options: [\"number\", \"boolean\", \"string\"],\n },\n },\n outputs: {\n value: \"any\",\n },\n impl: async (inputs, params) => {\n /** todo: there may be multiple values as an array */\n const value = params.value;\n switch (params.type) {\n case \"number\":\n return { value: broadCast(Number(value)) };\n case \"boolean\":\n return { value: broadCast(Boolean(value)) };\n case \"string\":\n return { value: broadCast(String(value)) };\n default:\n // return as is\n return { value: broadCast(value) };\n }\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { getValue } from \"./getValue\";\nimport { log } from \"./log\";\nimport { value } from \"./value\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [getValue.name]: getValue,\n [log.name]: log,\n [value.name]: value,\n};\n\nexport default primitives;\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const add: PrimitiveFunction = {\n name: \"add\",\n label: \"Add\",\n description: \"Add two numbers\",\n inputs: {\n a: { type: \"number\", default: 0 },\n b: { type: \"number\", default: 0 },\n },\n outputs: {\n sum: \"number\",\n },\n impl: async (inputs) => {\n return {\n sum: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA + itemB;\n },\n true\n ),\n };\n },\n};\n","import { create, all, MathNode, SymbolNode } from \"mathjs\";\nimport { PrimitiveFunction, RecOfTrees } from \"../../Engine\";\nimport { broadCast, mapTree, sameShape } from \"../../DataTree\";\n\nlet math = create(all, {});\n\nfunction evaluate(expression: string, scope: Record<string, any>) {\n // console.log(\"evaluating\", expression, \"in\", scope);\n let result;\n try {\n result = math.evaluate(expression, scope);\n if (typeof result.toNumber === \"function\") {\n result = result.toNumber();\n }\n } catch (e) {\n console.log(\"Calc:\", e);\n console.log(\"Calc:\", { expression, scope });\n // todo: communicate errors\n }\n\n // console.log(\"result\", result);\n return result;\n}\n\n/**\n * TODO: need rank polymorhism on the tree item sizes\n */\nexport const calc: PrimitiveFunction = {\n name: \"calc\",\n label: \"Calc\",\n nodeType: \"Calc\",\n inputs: {},\n params: {\n expression: \"string\",\n },\n outputs: {\n result: \"number\",\n },\n impl: async (inputs, params): Promise<RecOfTrees> => {\n const expression = params.expression;\n if (!expression) return {};\n // check for same shape on all inputs\n let inputEntries = Object.entries(inputs);\n if (\n !inputEntries.every(([key, v], i, a) => {\n return sameShape(v, a[0][1]);\n })\n ) {\n throw new Error(\"All inputs must have the same shape\");\n }\n // if no inputs, just return the result of the expression\n if (inputEntries.length === 0) {\n return { result: broadCast(evaluate(expression, {})) };\n }\n // if inputs, evaluate the expression for each input\n const result = mapTree(inputEntries[0][1], (_, p, i) => {\n // create a scope for each input\n let vars: Record<string, any> = {};\n inputEntries.forEach(([key, value]) => {\n vars[key] = value[p][i];\n });\n return evaluate(expression, vars);\n });\n\n // await new Promise((resolve) => setTimeout(resolve, 5000)); // yield to event loop\n\n return { result };\n },\n};\n\nconst BUILT_INS = new Set([\n // constants\n \"pi\",\n \"e\",\n \"tau\",\n \"phi\",\n \"Infinity\",\n \"NaN\",\n \"i\",\n \"true\",\n \"false\",\n \"null\",\n // common built-in functions (skip as variables when used as callees)\n \"sin\",\n \"cos\",\n \"tan\",\n \"asin\",\n \"acos\",\n \"atan\",\n \"atan2\",\n \"sinh\",\n \"cosh\",\n \"tanh\",\n \"log\",\n \"log10\",\n \"ln\",\n \"exp\",\n \"sqrt\",\n \"abs\",\n \"min\",\n \"max\",\n \"round\",\n \"floor\",\n \"ceil\",\n \"sum\",\n \"mean\",\n \"median\",\n \"mode\",\n \"std\",\n \"var\",\n \"pow\",\n \"mod\",\n \"gcd\",\n \"lcm\",\n \"derivative\",\n \"integral\",\n \"simplify\",\n \"im\",\n \"re\",\n]);\n\n/**\n * Return a sorted list of unbound symbol names in a MathJS expression.\n * @param expr The expression string, e.g. \"x + y\"\n * @param scope Names already defined/known (e.g. from your evaluation scope)\n * @param extraBound Extra names to treat as bound (e.g. UI reserved words)\n */\nexport function getUnboundSymbols(\n expr: string,\n scope: Record<string, unknown> = {},\n extraBound: string[] = []\n): string[] {\n let ast;\n try {\n ast = math.parse(expr);\n } catch {\n return [];\n }\n const bound = new Set<string>([...Object.keys(scope), ...extraBound]);\n const free = new Set<string>();\n\n const isFunctionCallee = (node: MathNode, parent?: MathNode) =>\n parent?.type === \"FunctionNode\" && (parent as any).fn === node;\n\n ast.traverse((node: MathNode, _path: string, parent?: MathNode) => {\n if (node.type !== \"SymbolNode\") return;\n\n const name = (node as SymbolNode).name;\n\n // Skip if symbol is the function name in a call, e.g. sin in sin(x)\n if (isFunctionCallee(node, parent)) return;\n\n // Skip mathjs built-ins and anything caller said is already bound\n if (BUILT_INS.has(name) || bound.has(name)) return;\n\n free.add(name);\n });\n\n // If you want to also exclude left-hand sides of assignments within the expr:\n // (Uncommon in \"fill in variables\" UIs, but easy to guard against.)\n ast.traverse((node: MathNode) => {\n if (node.type === \"AssignmentNode\") {\n const target: MathNode = (node as any).object;\n if (target?.type === \"SymbolNode\") {\n free.delete((target as SymbolNode).name);\n }\n }\n });\n\n return Array.from(free).sort();\n}\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { DISCARD, mapTree } from \"../../DataTree\";\n\nexport const cosDeg: PrimitiveFunction = {\n name: \"cosDeg\",\n label: \"Cosine\",\n description: \"Cosine of angle in degrees\",\n inputs: {\n a: { type: \"number\", default: 0 },\n },\n outputs: {\n cos: \"number\",\n },\n impl: async (inputs) => {\n return {\n cos: mapTree(inputs.a, (angle) => {\n if (angle === undefined) return DISCARD;\n return Math.cos((angle * Math.PI) / 180);\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const divide: PrimitiveFunction = {\n name: \"divide\",\n label: \"Divide\",\n description: \"Divide two numbers\",\n inputs: {\n a: { type: \"number\", default: 1 },\n b: { type: \"number\", default: 1 },\n },\n outputs: {\n quotient: \"number\",\n },\n impl: async (inputs) => {\n return {\n quotient: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n if (itemB === 0) return DISCARD;\n return itemA / itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const equalTo: PrimitiveFunction = {\n name: \"equalTo\",\n label: \"Equal to\",\n description: \"Compare equal and not equal\",\n inputs: {\n a: { type: \"number\", default: 0 },\n b: { type: \"number\", default: 0 },\n },\n outputs: {\n eq: \"boolean\",\n neq: \"boolean\",\n },\n impl: async (inputs) => {\n return {\n eq: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA === itemB;\n },\n true\n ),\n neq: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA !== itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const greaterThan: PrimitiveFunction = {\n name: \"greaterThan\",\n label: \"Greater Than\",\n description: \"Compare on greater than or greater than or equal to\",\n inputs: {\n a: { type: \"number\", default: 0 },\n b: { type: \"number\", default: 0 },\n },\n outputs: {\n gt: \"boolean\",\n gte: \"boolean\",\n },\n impl: async (inputs) => {\n return {\n gt: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA > itemB;\n },\n true\n ),\n gte: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA >= itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const lessThan: PrimitiveFunction = {\n name: \"lessThan\",\n label: \"Less Than\",\n description: \"Compare on less than or less than or equal to\",\n inputs: {\n a: { type: \"number\", default: 0 },\n b: { type: \"number\", default: 0 },\n },\n outputs: {\n lt: \"boolean\",\n lte: \"boolean\",\n },\n impl: async (inputs) => {\n return {\n lt: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA < itemB;\n },\n true\n ),\n lte: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA <= itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const modulo: PrimitiveFunction = {\n name: \"modulo\",\n label: \"Modulo\",\n description: \"Division remainder of two numbers\",\n inputs: {\n a: { type: \"number\", default: 1 },\n b: { type: \"number\", default: 1 },\n },\n outputs: {\n mod: \"number\",\n },\n impl: async (inputs) => {\n return {\n mod: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA % itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const multiply: PrimitiveFunction = {\n name: \"multiply\",\n label: \"Multiply\",\n description: \"Multiply two numbers\",\n inputs: {\n a: { type: \"number\", default: 1 },\n b: { type: \"number\", default: 1 },\n },\n outputs: {\n product: \"number\",\n },\n impl: async (inputs) => {\n return {\n product: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA * itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD, mapTree } from \"../../DataTree\";\n\nexport const pow: PrimitiveFunction = {\n name: \"pow\",\n label: \"Power\",\n description: \"Power a number\",\n inputs: {\n x: { type: \"number\", default: 0 },\n n: { type: \"number\", default: 2 },\n },\n outputs: {\n pow: \"number\",\n },\n impl: async (inputs) => {\n return {\n pow: binaryOnTree(inputs.x, inputs.n, (x, n) => {\n if (x === undefined || n === undefined) return DISCARD;\n return Math.pow(x, n);\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { DISCARD, mapTree } from \"../../DataTree\";\n\nexport const sinDeg: PrimitiveFunction = {\n name: \"sinDeg\",\n label: \"Sine\",\n description: \"Sine of angle in degrees\",\n inputs: {\n a: { type: \"number\", default: 0 },\n },\n outputs: {\n sin: \"number\",\n },\n impl: async (inputs) => {\n return {\n sin: mapTree(inputs.a, (angle) => {\n if (angle === undefined) return DISCARD;\n return Math.sin((angle * Math.PI) / 180);\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { DISCARD, mapTree } from \"../../DataTree\";\n\nexport const sqrt: PrimitiveFunction = {\n name: \"sqrt\",\n label: \"Square root\",\n description: \"Square root of a number\",\n inputs: {\n x: { type: \"number\", default: 0 },\n },\n outputs: {\n sqrt: \"number\",\n },\n impl: async (inputs) => {\n return {\n sqrt: mapTree(inputs.x, (x) => {\n if (x === undefined) return DISCARD;\n if (x < 0) return DISCARD;\n return Math.sqrt(x);\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTree, DISCARD } from \"../../DataTree\";\n\nexport const subtract: PrimitiveFunction = {\n name: \"subtract\",\n label: \"Subtract\",\n description: \"Subtract two numbers\",\n inputs: {\n a: { type: \"number\", default: 0 },\n b: { type: \"number\", default: 0 },\n },\n outputs: {\n difference: \"number\",\n },\n impl: async (inputs) => {\n return {\n difference: binaryOnTree(\n inputs.a,\n inputs.b,\n (itemA, itemB) => {\n if (itemA === undefined || itemB === undefined)\n return DISCARD;\n return itemA - itemB;\n },\n true\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { DISCARD, mapTree } from \"../../DataTree\";\n\nexport const tanDeg: PrimitiveFunction = {\n name: \"tanDeg\",\n label: \"Tangent\",\n description: \"Tangent of angle in degrees\",\n inputs: {\n a: { type: \"number\", default: 0 },\n },\n outputs: {\n tan: \"number\",\n },\n impl: async (inputs) => {\n return {\n tan: mapTree(inputs.a, (angle) => {\n if (angle === undefined) return DISCARD;\n return Math.tan((angle * Math.PI) / 180);\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { add } from \"./add\";\nimport { calc } from \"./calc\";\nimport { cosDeg } from \"./cos\";\nimport { divide } from \"./divide\";\nimport { equalTo } from \"./equalTo\";\nimport { greaterThan } from \"./greaterThan\";\nimport { lessThan } from \"./lessThan\";\nimport { modulo } from \"./modulo\";\nimport { multiply } from \"./multiply\";\nimport { pow } from \"./pow\";\nimport { sinDeg } from \"./sin\";\nimport { sqrt } from \"./sqrt\";\nimport { subtract } from \"./subtract\";\nimport { tanDeg } from \"./tan\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [calc.name]: calc,\n [equalTo.name]: equalTo,\n [lessThan.name]: lessThan,\n [greaterThan.name]: greaterThan,\n [add.name]: add,\n [subtract.name]: subtract,\n [multiply.name]: multiply,\n [divide.name]: divide,\n [modulo.name]: modulo,\n [sinDeg.name]: sinDeg,\n [cosDeg.name]: cosDeg,\n [tanDeg.name]: tanDeg,\n [sqrt.name]: sqrt,\n [pow.name]: pow,\n};\n\nexport default primitives;\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTreeBranch, DISCARD } from \"../../DataTree\";\n\nexport const filterList: PrimitiveFunction = {\n name: \"filterList\",\n label: \"Filter List\",\n description: \"Filters the list by a boolean value\",\n inputs: {\n list: \"any\",\n keep: \"boolean\",\n },\n params: {\n removeEmpty: { type: \"boolean\", default: false },\n },\n outputs: {\n list: \"any\",\n others: \"any\",\n },\n impl: async (inputs, params) => {\n return {\n list: binaryOnTreeBranch(\n inputs.list || {},\n inputs.keep || {},\n (branchA, branchB) => {\n let result = branchA.filter((item, index) => {\n return (\n branchB[Math.min(index, branchB.length - 1)] ===\n true\n );\n });\n if (!result.length && params.removeEmpty) {\n return DISCARD;\n }\n return result;\n }\n ),\n others: binaryOnTreeBranch(\n inputs.list || {},\n inputs.keep || {},\n (branchA, branchB) => {\n let result = branchA.filter((item, index) => {\n return (\n branchB[Math.min(index, branchB.length - 1)] ===\n false\n );\n });\n if (!result.length && params.removeEmpty) {\n return DISCARD;\n }\n return result;\n }\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { graftTree as graft } from \"../../DataTree\";\n\nexport const splitGroup: PrimitiveFunction = {\n name: \"splitGroup\",\n label: \"Split Group\",\n description: \"Splits every item of a group into its own group\",\n inputs: {\n tree: \"any\",\n },\n outputs: {\n tree: \"any\", // Return the grafted nodes\n },\n impl: async (inputs) => {\n return {\n tree: graft(inputs.tree || {}),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTreeBranch, DISCARD } from \"../../DataTree\";\n\nexport const listItem: PrimitiveFunction = {\n name: \"listItem\",\n label: \"List Item\",\n description: \"Retrieve the items from the list at the specified indices\",\n inputs: {\n list: \"any\",\n index: {\n type: \"number\",\n default: 0,\n },\n },\n outputs: {\n item: \"any\",\n others: \"any\",\n },\n impl: async (inputs) => {\n const item = binaryOnTreeBranch(\n inputs.list || {},\n inputs.index || {},\n (branch, indices) => {\n if (indices) {\n const n = branch.length;\n return indices.map((i) => {\n i = i % n;\n if (i < 0) i += n;\n return branch[i];\n });\n }\n return DISCARD;\n }\n );\n const others = binaryOnTreeBranch(\n inputs.list || {},\n inputs.index || {},\n (branch, indices) => {\n const n = branch.length;\n indices = indices.map((i) => {\n i = i % n;\n if (i < 0) i += n;\n return i;\n });\n return branch.filter((_, i) => !indices?.includes(i));\n }\n );\n return {\n item,\n others,\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { mapTreeBranch } from \"../../DataTree\";\n\nexport const listLength: PrimitiveFunction = {\n name: \"listLength\",\n label: \"List Length\",\n description: \"Get the length of a list\",\n inputs: {\n list: \"any\",\n },\n outputs: {\n length: \"number\",\n },\n impl: async (inputs) => {\n return {\n length: mapTreeBranch(inputs.list || {}, (branch) => {\n return [branch.length];\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { trimTree as trim } from \"../../DataTree\";\n\nexport const mergeGroup: PrimitiveFunction = {\n name: \"mergeGroup\",\n label: \"Merge Group\",\n description: \"Merge the deepest groups into their parent.\",\n inputs: {\n tree: \"any\",\n },\n params: {\n depth: { type: \"number\", default: 1 }, // Optional depth to trim the tree\n },\n outputs: {\n tree: \"any\", // Return the trimed nodes\n },\n impl: async (inputs, params) => {\n const depth = params.depth ?? 1;\n return {\n tree: trim(inputs.tree, depth),\n };\n },\n};\n","import { PrimitiveFunction, RecOfTrees } from \"../../Engine/types\";\nimport { getPaths, Tree } from \"../../DataTree\";\n\nexport const cartesianGroups: PrimitiveFunction = {\n name: \"cartesianGroups\",\n label: \"Cartesian Groups\",\n description: \"Duplicate groups such that all pairings are created.\",\n inputs: {\n treeA: \"any\",\n treeB: \"any\",\n },\n params: {},\n outputs: {\n treeA: \"any\",\n treeB: \"any\",\n },\n impl: async (inputs, params): Promise<RecOfTrees> => {\n if (!inputs.treeA || !inputs.treeB) {\n return {};\n }\n\n const pathsA = getPaths(inputs.treeA);\n const pathsB = getPaths(inputs.treeB);\n\n const treeA: Tree<any> = {};\n const treeB: Tree<any> = {};\n pathsB.forEach((pathB, ib) => {\n pathsA.forEach((pathA, ia) => {\n const pa = `${ib};${pathA}`;\n treeA[pa] = inputs.treeA[pathA];\n const pb = `${pathB};${ia}`;\n treeB[pb] = inputs.treeB[pathB];\n });\n });\n\n return {\n treeA,\n treeB,\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { binaryOnTreeBranch, DISCARD, mapTreeBranch } from \"../../DataTree\";\n\nexport const concat: PrimitiveFunction = {\n name: \"concat\",\n label: \"Concat\",\n description: \"Concatenates two lists back to back\",\n inputs: {\n treeA: \"any\",\n treeB: \"any\",\n },\n outputs: {\n result: \"any\",\n },\n impl: async (inputs) => {\n return {\n result: binaryOnTreeBranch(\n inputs.treeA || {},\n inputs.treeB || {},\n (branchA, branchB) => {\n if (branchA === undefined) return branchB || DISCARD;\n if (branchB === undefined) return branchA || DISCARD;\n return branchA.concat(branchB);\n }\n ),\n };\n },\n};\n","import { binaryOnTreeBranch, DISCARD } from \"../../DataTree\";\nimport { PrimitiveFunction } from \"../../Engine\";\n\nexport const relativeItem: PrimitiveFunction = {\n name: \"relativeItem\",\n label: \"Relative Item\",\n description: \"Pairs each item in the tree with its next item\",\n inputs: {\n tree: { type: \"any\" },\n offset: { type: \"number\", default: 1, step: 1 },\n },\n params: {\n wrap: { type: \"boolean\", default: true },\n },\n outputs: {\n itemA: \"any\",\n itemB: \"any\",\n },\n impl: async (inputs, params) => {\n return {\n itemA: inputs.tree || {},\n itemB: binaryOnTreeBranch(\n inputs.tree || {},\n inputs.offset || {},\n (branch, offsets) => {\n let mapped = branch.map((_, i) => {\n const offset = offsets[0] ?? 1;\n let index = i + offset;\n if (params.wrap) {\n index = index % branch.length;\n if (index < 0) index += branch.length;\n }\n return branch[index] ?? DISCARD;\n });\n return mapped.filter((v) => v !== DISCARD);\n }\n ),\n };\n },\n};\n","import { binaryOnTreeBranch, DISCARD } from \"../../DataTree\";\nimport { PrimitiveFunction } from \"../../Engine\";\n\nexport const relativeItems: PrimitiveFunction = {\n name: \"relativeItems\",\n label: \"Relative Items\",\n description:\n \"Pairs each item in the tree with an item in another tree at a specified offset\",\n inputs: {\n treeA: { type: \"any\" },\n treeB: { type: \"any\" },\n offset: { type: \"number\", default: 1, step: 1 },\n },\n params: {\n wrap: { type: \"boolean\", default: true },\n },\n outputs: {\n itemA: \"any\",\n itemB: \"any\",\n },\n impl: async (inputs, params) => {\n return {\n itemA: inputs.treeA || {},\n itemB: binaryOnTreeBranch(\n inputs.treeB || {},\n inputs.offset || {},\n (branch, offsets) => {\n let mapped = branch.map((_, i) => {\n const offset = offsets[0] ?? 1;\n let index = i + offset;\n if (params.wrap) {\n index = index % branch.length;\n if (index < 0) index += branch.length;\n }\n return branch[index] ?? DISCARD;\n });\n return mapped.filter((v) => v !== DISCARD);\n }\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { filterList } from \"./filterList\";\nimport { splitGroup } from \"./splitGroup\";\nimport { listItem } from \"./listItem\";\nimport { listLength } from \"./listLength\";\nimport { mergeGroup } from \"./mergeGroup\";\nimport { shiftList } from \"./shiftList\";\nimport { cartesianGroups } from \"./cartesianGroups\";\nimport { concat } from \"./concat\";\nimport { relativeItem } from \"./relativeItem\";\nimport { relativeItems } from \"./relativeItems\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [splitGroup.name]: splitGroup,\n [mergeGroup.name]: mergeGroup,\n [listItem.name]: listItem,\n [listLength.name]: listLength,\n [filterList.name]: filterList,\n // [shiftList.name]: shiftList,\n [relativeItem.name]: relativeItem,\n [relativeItems.name]: relativeItems,\n [cartesianGroups.name]: cartesianGroups,\n [concat.name]: concat,\n};\n\nexport default primitives;\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { graftTree, nAryOnTree, nAryOnTreeBranch } from \"../../DataTree\";\n\nexport const series: PrimitiveFunction = {\n name: \"series\",\n label: \"Series\",\n description: \"Create a series of numbers.\",\n inputs: {\n start: { type: \"number\", default: 0 },\n step: { type: \"number\", default: 1 },\n count: { type: \"number\", default: 10 },\n },\n outputs: {\n series: \"number\",\n },\n impl: async (inputs) => {\n return {\n series: nAryOnTreeBranch(\n [\n graftTree(inputs.start),\n graftTree(inputs.step),\n graftTree(inputs.count),\n ],\n ([starts = [], steps = [], counts = []]) => {\n const start = starts[0];\n const step = steps[0];\n const count = counts[0];\n let series: number[] = [];\n for (let i = 0; i < count; i++) {\n series.push(start + i * step);\n }\n return series;\n }\n ),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { series } from \"./series\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [series.name]: series,\n};\n\nexport default primitives;\n","import { Tree } from \"../../DataTree\";\nimport { PrimitiveFunction, RecOfTrees } from \"../../Engine\";\n\nexport const mergeTree: PrimitiveFunction = {\n name: \"mergeTree\",\n label: \"Merge Tree\",\n description: \"Merge multiple trees into a single tree.\",\n nodeType: \"Merge\",\n inputs: {},\n outputs: {\n result: \"any\",\n },\n impl: async (inputs): Promise<RecOfTrees> => {\n const result: Tree<any> = {};\n\n Object.values(inputs).forEach((input) => {\n Object.entries(input).forEach(([key, value]) => {\n if (!result[key]) {\n result[key] = value;\n } else {\n result[key] = [...result[key], ...value];\n }\n });\n });\n return { result };\n },\n};\n","import { Tree, simplifyTree as simplify } from \"../../DataTree\";\nimport { PrimitiveFunction, RecOfTrees } from \"../../Engine\";\n\nexport const simplifyTree: PrimitiveFunction = {\n name: \"simplifyTree\",\n label: \"Simplify Tree\",\n description: \"Simplify a tree by removing redundant groups.\",\n inputs: {\n tree: \"any\",\n },\n outputs: {\n tree: \"any\",\n },\n impl: async (inputs): Promise<RecOfTrees> => {\n if (!inputs.tree) {\n return {};\n }\n return {\n tree: simplify(inputs.tree),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { mergeTree } from \"./mergeTree\";\nimport { simplifyTree } from \"./simplifyTree\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [mergeTree.name]: mergeTree,\n [simplifyTree.name]: simplifyTree,\n};\n\nexport default primitives;\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { mapTreeBranch } from \"../../DataTree\";\n\nexport const groupAnd: PrimitiveFunction = {\n name: \"groupAnd\",\n label: \"Group and\",\n description: \"Returns true if all of the items in a group are true\",\n inputs: {\n tree: \"boolean\",\n },\n outputs: {\n result: \"boolean\",\n },\n impl: async (inputs) => {\n return {\n result: mapTreeBranch(inputs.tree || {}, (branch) => {\n return [branch.reduce((acc, val) => acc && val, true)];\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine/types\";\nimport { mapTreeBranch } from \"../../DataTree\";\n\nexport const groupOr: PrimitiveFunction = {\n name: \"groupOr\",\n label: \"Group or\",\n description: \"Returns true if any of the items in a group are true\",\n inputs: {\n tree: \"boolean\",\n },\n outputs: {\n result: \"boolean\",\n },\n impl: async (inputs) => {\n return {\n result: mapTreeBranch(inputs.tree || {}, (branch) => {\n return [branch.reduce((acc, val) => acc || val, false)];\n }),\n };\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { groupAnd } from \"./groupAnd\";\nimport { groupOr } from \"./groupOr\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [groupAnd.name]: groupAnd,\n [groupOr.name]: groupOr,\n};\n\nexport default primitives;\n","import { PrimitiveFunction, RecOfTrees } from \"../../Engine\";\n\nexport const inputs: PrimitiveFunction = {\n name: \"inputs\",\n label: \"Input\",\n description: \"Data input.\",\n nodeType: \"Input\",\n inputs: {},\n outputs: {},\n impl: async (): Promise<RecOfTrees> => {\n return {};\n },\n};\n","import { PrimitiveFunction, RecOfTrees } from \"../../Engine\";\n\nexport const output: PrimitiveFunction = {\n name: \"output\",\n label: \"Output\",\n description: \"Data output.\",\n nodeType: \"Output\",\n inputs: {},\n outputs: {},\n impl: async (): Promise<RecOfTrees> => {\n return {};\n },\n};\n","import { PrimitiveFunction } from \"../../Engine\";\nimport { inputs } from \"./input\";\nimport { output } from \"./output\";\n\nconst primitives: Record<string, PrimitiveFunction> = {\n [inputs.name]: inputs,\n [output.name]: output,\n};\n\nexport default primitives;\n","import { PrimitiveFunction } from \"../Engine/types\";\nimport Util from \"./Util\";\nimport Math from \"./Math\";\nimport List from \"./List\";\nimport Sequence from \"./Sequence\";\nimport Tree from \"./Tree\";\nimport Logic from \"./Logic\";\nimport IO from \"./IO\";\n\nexport const Lib = { Util, Math, List, Sequence, Tree, Logic, IO };\n\nexport const primitives: Record<string, PrimitiveFunction> = {\n ...IO,\n ...Util,\n ...Math,\n ...List,\n ...Sequence,\n ...Tree,\n ...Logic,\n};\n","import { PrimitiveFunction, AnyFunction } from \"./types\";\n\nexport function isPrimitive(\n node: AnyFunction | PrimitiveFunction\n): node is PrimitiveFunction {\n return (node as PrimitiveFunction).impl !== undefined;\n}\n","import { Tree } from \"../DataTree\";\nimport { primitives } from \"../Primitives\";\nimport { isPrimitive } from \"./Rule\";\nimport {\n GraphedFunction,\n NormalizedVarDef,\n PrimitiveFunction,\n AnyFunction,\n VarDef,\n VarRef,\n RecOfTrees,\n FunctionCall,\n} from \"./types\";\nimport {\n getValue,\n interpolate,\n isReference,\n parseReference,\n uid,\n} from \"./util\";\n\nexport * from \"./types\";\nexport * from \"./util\";\n\nexport interface Ref {\n name: string;\n path: string;\n parts: string[];\n refNode: string;\n refField: string;\n}\n\nexport function normalizeVarDef(varDef: VarDef): NormalizedVarDef {\n if (typeof varDef === \"string\") {\n return {\n type: varDef,\n };\n }\n return varDef as NormalizedVarDef;\n}\n\nexport function getReferences(inputs: VarRef) {\n const references: Ref[] = [];\n Object.entries(inputs).forEach(([name, value]) => {\n const values = Array.isArray(value) ? value : [value];\n values.forEach((value) => {\n if (!isReference(value)) {\n return;\n }\n const path = parseReference(value);\n const parts = path.split(\".\");\n references.push({\n name,\n path,\n parts,\n refNode: parts[0],\n refField: parts.slice(1).join(\".\"),\n });\n });\n });\n return references;\n}\n\nexport function topSort(fn: GraphedFunction): GraphedFunction {\n const ordered: string[] = [];\n const visiting: Set<string> = new Set();\n const done: Set<string> = new Set();\n\n const visit = (id: string) => {\n // if already done, return\n if (done.has(id)) return;\n // if being visited, we have a loop\n if (visiting.has(id)) {\n throw new Error(`Circular dependency detected: ${id}`);\n }\n // mark as visiting\n visiting.add(id);\n const fnCall = fn.body[id];\n if (!fnCall) {\n console.warn(`Function ${id} not found in body`, fn);\n }\n // check the inputs and visit them\n Object.values(fnCall.inputs || {}).forEach((input) => {\n if (isReference(input)) {\n const [id] = parseReference(input).split(\".\");\n // visit inputs\n if (id !== \"inputs\") {\n visit(id);\n }\n }\n });\n // push to end of the list\n ordered.push(id);\n // finish visting\n visiting.delete(id);\n // mark as done\n done.add(id);\n };\n\n Object.keys(fn.body).forEach(visit);\n\n const orderedBody = Object.fromEntries(\n ordered.map((id) => [id, fn.body[id]])\n );\n\n return {\n ...fn,\n body: orderedBody,\n };\n}\n\ninterface ExecutionContext {\n scope: Record<string, Record<string, Tree<any>>>;\n timings: Record<string, number>;\n activations: Record<string, boolean>;\n}\n\ninterface EngineEvent {\n name: string;\n inputs: Record<string, Tree<any>>;\n params: Record<string, any>;\n outputs?: Record<string, Tree<any>>;\n executionId: string;\n context: ExecutionContext;\n result?: RecOfTrees;\n startTime: number;\n endTime?: number;\n duration?: number;\n}\nexport class Engine {\n private fnIndex: Record<string, PrimitiveFunction>;\n private listeners: Record<string, Set<(event: EngineEvent) => void>> = {};\n private cache: Record<string, any> = {};\n private cacheMiss = Symbol(\"cacheMiss\");\n\n constructor(morePrimitives: Record<string, PrimitiveFunction> = {}) {\n this.fnIndex = { ...primitives, ...morePrimitives };\n }\n\n private checkCache(\n fnName: string,\n inputs: RecOfTrees\n ): typeof this.cacheMiss | RecOfTrees {\n if (!this.cache[fnName]) {\n return this.cacheMiss;\n }\n\n // TODO: need to check the interpolated inputs, as the references can be the same\n // however, the interpolation does create new objects\n\n return {};\n }\n\n private async runGraph(node: GraphedFunction, inputs, params) {\n const { body = {} } = node;\n // create execution context\n const executionId = uid();\n\n // add input defaults\n Object.entries(node.inputs || {}).forEach(([name, def]) => {\n let normDef = normalizeVarDef(def);\n if (!inputs[name] && normDef.default !== undefined) {\n inputs[name] = normDef.default;\n }\n });\n\n const context: ExecutionContext = {\n scope: { inputs },\n timings: {},\n activations: {},\n };\n const startTime = performance.now();\n\n for (const name in body) {\n const fnCall = body[name];\n const fn = this.fnIndex[fnCall.name];\n if (!fn) {\n throw new Error(`function ${fnCall.name} not found in index`);\n }\n // interpolate inputs given the current result\n const inputs = interpolate(fnCall.inputs || {}, context.scope);\n const params = fnCall.params || {};\n let result: RecOfTrees = {};\n\n let cacheResult = this.checkCache(name, inputs);\n if (cacheResult !== this.cacheMiss) {\n // use as result\n result = cacheResult as RecOfTrees;\n // store the result in the scope\n context.scope[name] = result;\n } else {\n // cache miss, call the function implementation\n context.activations[name] = true;\n const startTime = performance.now();\n this.fireEvent(\"functionCall\", {\n name,\n inputs,\n params,\n executionId,\n context,\n startTime,\n });\n result = await fn.impl(inputs, params);\n const endTime = performance.now();\n context.activations[name] = false;\n context.timings[name] = endTime - startTime;\n\n // store the result in the scope\n context.scope[name] = result;\n\n this.fireEvent(\"functionResult\", {\n name,\n inputs,\n params,\n executionId,\n context,\n result,\n startTime,\n endTime,\n duration: endTime - startTime,\n });\n\n // console.log(\"functionReult\", name, inputs, params, result);\n }\n }\n\n // assemble the result\n const result = interpolate(node.outputs || {}, context.scope);\n const endTime = performance.now();\n\n // fire event\n this.fireEvent(\"result\", {\n name: node.name,\n inputs,\n params,\n executionId,\n context,\n result,\n startTime,\n endTime,\n duration: endTime - startTime,\n });\n\n // console.log(\"Engine run done\", result, context, endTime - startTime);\n\n return result;\n }\n\n /**\n * creates an function that can be evaluated by calling its implementation\n * @param node\n * @returns\n */\n build(node: AnyFunction, id?: string): PrimitiveFunction {\n if (isPrimitive(node)) {\n // already a primitive\n return node;\n }\n const { body = {}, ...props } = node;\n\n const primitive: PrimitiveFunction = {\n ...props,\n outputs: Object.fromEntries(\n Object.entries(node.outputs || {}).map(([key, ref]) => {\n return [key, { type: \"any\" }];\n })\n ),\n mount: (trigger) => {\n // mount all the nodes\n const unsubs: (() => void)[] = [];\n Object.values(body).forEach((n) => {\n const fn = this.fnIndex[n.name];\n if (!fn) {\n console.warn(`function ${n.name} not found in index`);\n return;\n }\n const unsub = fn.mount?.(trigger);\n if (unsub) {\n unsubs.push(unsub);\n }\n });\n return () => {\n // console.log(`Unmounting function: ${node.name}`);\n // unmount all the nodes\n for (const unsub of unsubs) {\n unsub();\n }\n };\n },\n impl: async (inputs, params) => {\n // console.log(\n // `Running function: ${node.name}`,\n // node,\n // inputs,\n // params\n // );\n\n return this.runGraph(node, inputs, params);\n },\n };\n\n this.fnIndex[primitive.name] = primitive;\n return primitive;\n }\n\n mount(node: PrimitiveFunction) {\n return node.mount?.(() => {\n // console.log(`Triggering node: ${node.name}`);\n this.run(node);\n });\n }\n\n subscribe(eventName: string, listener: (event: EngineEvent) => void) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = new Set();\n }\n if (!this.listeners[eventName].has(listener)) {\n this.listeners[eventName].add(listener);\n }\n return () => {\n this.listeners[eventName].delete(listener);\n };\n }\n\n fireEvent(eventName: string, event: EngineEvent) {\n for (const listener of this.listeners[eventName] || []) {\n listener(event);\n }\n }\n\n async run(node: AnyFunction, inputs: VarRef = {}) {\n if (!isPrimitive(node)) {\n // check if cached\n let builtFn = this.getFunction(node.name);\n if (!builtFn) {\n // not yet build\n builtFn = this.build(node);\n }\n return this.run(builtFn, inputs);\n }\n\n // pass tree-y-fied input to the node implementation\n const mappedInputs = interpolate(inputs, {});\n // console.log(\"Engine running with inputs\", inputs, mappedInputs);\n const result = await node.impl?.(mappedInputs, {});\n // console.log(\"Engine run complete\", result);\n\n return result;\n }\n\n getFunction(name: string): PrimitiveFunction | undefined {\n return this.fnIndex[name];\n }\n\n // node handlers\n\n public applyNodeDelete(oldFn: GraphedFunction, nodeIds: string[]) {\n const newFn: GraphedFunction = {\n ...oldFn,\n body: { ...oldFn.body },\n };\n if (nodeIds.every((id) => id === \"output\")) {\n // cannot delete output node\n return oldFn;\n }\n if (nodeIds.includes(\"inputs\")) {\n delete newFn.inputs;\n }\n nodeIds.forEach((id) => {\n delete newFn.body[id];\n });\n // remove any references to the deleted nodes\n Object.entries(newFn.body).forEach(([id, node]) => {\n Object.entries(node.inputs || {}).forEach(([name, value]) => {\n if (isReference(value)) {\n const path = parseReference(value);\n const parts = path.split(\".\");\n if (nodeIds.includes(parts[0])) {\n delete newFn.body[id].inputs?.[name];\n }\n }\n });\n });\n return newFn;\n }\n\n public applyEdgeDelete(\n oldFn: GraphedFunction,\n fromNode: string,\n toNode: string,\n fromField: string,\n toField: string\n ) {\n const newFn: GraphedFunction = {\n ...oldFn,\n body: { ...oldFn.body },\n };\n\n if (toNode === \"output\") {\n // no deleting of output edges\n return oldFn;\n }\n\n const to = newFn.body[toNode];\n const fn = this.fnIndex[to?.name];\n\n if (!to) {\n console.warn(\"Invalid nodes for edge deletion\");\n return newFn;\n }\n\n if (to.inputs && to.inputs[toField] === `<${fromNode}.${fromField}>`) {\n // revert to default value if exists\n delete to.inputs[toField];\n if (fn.inputs?.[toField]) {\n const normDef = normalizeVarDef(fn.inputs[toField]);\n if (normDef.default !== undefined) {\n to.inputs[toField] = normDef.default;\n }\n }\n } else {\n console.warn(\"No matching edge found to delete\");\n }\n\n return newFn;\n }\n\n public applyNodeAdd(\n oldFn: GraphedFunction,\n nodeName: string,\n callback?: (newNode: FunctionCall, id: string) => void\n ) {\n const newFn: GraphedFunction = {\n ...oldFn,\n body: { ...oldFn.body },\n };\n\n if (nodeName === \"inputs\") {\n // ensure inputs node\n newFn.inputs = newFn.inputs || {};\n return newFn;\n }\n\n let id = uid();\n // ensure unique id\n while (newFn.body[id]) {\n id = uid();\n }\n // get inputs defaults\n const inputs = {};\n Object.entries(this.fnIndex[nodeName].inputs || {}).forEach(\n ([key, def]) => {\n const normDef = normalizeVarDef(def);\n if (normDef.default !== undefined) {\n inputs[key] = normDef.default;\n }\n }\n );\n // get params defaults\n const params = {};\n Object.entries(this.fnIndex[nodeName].params || {}).forEach(\n ([key, def]) => {\n const normDef = normalizeVarDef(def);\n if (normDef.default !== undefined) {\n params[key] = normDef.default;\n }\n }\n );\n const newCall: FunctionCall = {\n name: nodeName,\n inputs: inputs,\n params: params,\n };\n newFn.body[id] = newCall;\n callback?.(newCall, id);\n return topSort(newFn);\n }\n\n public applyNodeConnect(\n oldFn: GraphedFunction,\n fromNode: string,\n toNode: string,\n fromField: string,\n toField: string\n ) {\n const newFn: GraphedFunction = {\n ...oldFn,\n body: { ...oldFn.body },\n };\n\n if (toNode === \"output\") {\n newFn.outputs = {\n ...oldFn.outputs,\n [toField]: `<${fromNode}.${fromField}>`,\n };\n // no need to sort, as only output has changed\n return newFn;\n }\n\n // const from = newFn.body[fromNode];\n const to = { ...newFn.body[toNode] };\n\n if (!to) {\n console.warn(\"Invalid nodes for connection\");\n return newFn;\n }\n\n if (!to.inputs) {\n to.inputs = {};\n }\n\n // add the reference\n to.inputs[toField] = `<${fromNode}.${fromField}>`;\n newFn.body[toNode] = to;\n\n return topSort(newFn);\n }\n}\n","import { createContext } from 'react';\n/**\n * Create the React Context\n */ export const DndContext = createContext({\n dragDropManager: undefined\n});\n\n//# sourceMappingURL=DndContext.js.map","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */ export function invariant(condition, format, ...args) {\n if (isProduction()) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n if (!condition) {\n let error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n let argIndex = 0;\n error = new Error(format.replace(/%s/g, function() {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n error.framesToPop = 1 // we don't care about invariant's own frame\n ;\n throw error;\n }\n}\nfunction isProduction() {\n return typeof process !== 'undefined' && process.env['NODE_ENV'] === 'production';\n}\n\n//# sourceMappingURL=index.js.map","// cheap lodash replacements\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */ export function get(obj, path, defaultValue) {\n return path.split('.').reduce((a, c)=>a && a[c] ? a[c] : defaultValue || null\n , obj);\n}\n/**\n * drop-in replacement for _.without\n */ export function without(items, item) {\n return items.filter((i)=>i !== item\n );\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */ export function isString(input) {\n return typeof input === 'string';\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */ export function isObject(input) {\n return typeof input === 'object';\n}\n/**\n * replacement for _.xor\n * @param itemsA\n * @param itemsB\n */ export function xor(itemsA, itemsB) {\n const map = new Map();\n const insertItem = (item)=>{\n map.set(item, map.has(item) ? map.get(item) + 1 : 1);\n };\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n const result = [];\n map.forEach((count, key)=>{\n if (count === 1) {\n result.push(key);\n }\n });\n return result;\n}\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */ export function intersection(itemsA, itemsB) {\n return itemsA.filter((t)=>itemsB.indexOf(t) > -1\n );\n}\n\n//# sourceMappingURL=js_utils.js.map","export const INIT_COORDS = 'dnd-core/INIT_COORDS';\nexport const BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';\nexport const PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';\nexport const HOVER = 'dnd-core/HOVER';\nexport const DROP = 'dnd-core/DROP';\nexport const END_DRAG = 'dnd-core/END_DRAG';\n\n//# sourceMappingURL=types.js.map","import { INIT_COORDS } from '../types.js';\nexport function setClientOffset(clientOffset, sourceClientOffset) {\n return {\n type: INIT_COORDS,\n payload: {\n sourceClientOffset: sourceClientOffset || null,\n clientOffset: clientOffset || null\n }\n };\n}\n\n//# sourceMappingURL=setClientOffset.js.map","import { invariant } from '@react-dnd/invariant';\nimport { isObject } from '../../utils/js_utils.js';\nimport { setClientOffset } from './local/setClientOffset.js';\nimport { BEGIN_DRAG, INIT_COORDS } from './types.js';\nconst ResetCoordinatesAction = {\n type: INIT_COORDS,\n payload: {\n clientOffset: null,\n sourceClientOffset: null\n }\n};\nexport function createBeginDrag(manager) {\n return function beginDrag(sourceIds = [], options = {\n publishSource: true\n }) {\n const { publishSource =true , clientOffset , getSourceClientOffset , } = options;\n const monitor = manager.getMonitor();\n const registry = manager.getRegistry();\n // Initialize the coordinates using the client offset\n manager.dispatch(setClientOffset(clientOffset));\n verifyInvariants(sourceIds, monitor, registry);\n // Get the draggable source\n const sourceId = getDraggableSource(sourceIds, monitor);\n if (sourceId == null) {\n manager.dispatch(ResetCoordinatesAction);\n return;\n }\n // Get the source client offset\n let sourceClientOffset = null;\n if (clientOffset) {\n if (!getSourceClientOffset) {\n throw new Error('getSourceClientOffset must be defined');\n }\n verifyGetSourceClientOffsetIsFunction(getSourceClientOffset);\n sourceClientOffset = getSourceClientOffset(sourceId);\n }\n // Initialize the full coordinates\n manager.dispatch(setClientOffset(clientOffset, sourceClientOffset));\n const source = registry.getSource(sourceId);\n const item = source.beginDrag(monitor, sourceId);\n // If source.beginDrag returns null, this is an indicator to cancel the drag\n if (item == null) {\n return undefined;\n }\n verifyItemIsObject(item);\n registry.pinSource(sourceId);\n const itemType = registry.getSourceType(sourceId);\n return {\n type: BEGIN_DRAG,\n payload: {\n itemType,\n item,\n sourceId,\n clientOffset: clientOffset || null,\n sourceClientOffset: sourceClientOffset || null,\n isSourcePublic: !!publishSource\n }\n };\n };\n}\nfunction verifyInvariants(sourceIds, monitor, registry) {\n invariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');\n sourceIds.forEach(function(sourceId) {\n invariant(registry.getSource(sourceId), 'Expected sourceIds to be registered.');\n });\n}\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset) {\n invariant(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');\n}\nfunction verifyItemIsObject(item) {\n invariant(isObject(item), 'Item must be an object.');\n}\nfunction getDraggableSource(sourceIds, monitor) {\n let sourceId = null;\n for(let i = sourceIds.length - 1; i >= 0; i--){\n if (monitor.canDragSource(sourceIds[i])) {\n sourceId = sourceIds[i];\n break;\n }\n }\n return sourceId;\n}\n\n//# sourceMappingURL=beginDrag.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nimport { invariant } from '@react-dnd/invariant';\nimport { isObject } from '../../utils/js_utils.js';\nimport { DROP } from './types.js';\nexport function createDrop(manager) {\n return function drop(options = {}) {\n const monitor = manager.getMonitor();\n const registry = manager.getRegistry();\n verifyInvariants(monitor);\n const targetIds = getDroppableTargets(monitor);\n // Multiple actions are dispatched here, which is why this doesn't return an action\n targetIds.forEach((targetId, index)=>{\n const dropResult = determineDropResult(targetId, index, registry, monitor);\n const action = {\n type: DROP,\n payload: {\n dropResult: _objectSpread({}, options, dropResult)\n }\n };\n manager.dispatch(action);\n });\n };\n}\nfunction verifyInvariants(monitor) {\n invariant(monitor.isDragging(), 'Cannot call drop while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');\n}\nfunction determineDropResult(targetId, index, registry, monitor) {\n const target = registry.getTarget(targetId);\n let dropResult = target ? target.drop(monitor, targetId) : undefined;\n verifyDropResultType(dropResult);\n if (typeof dropResult === 'undefined') {\n dropResult = index === 0 ? {} : monitor.getDropResult();\n }\n return dropResult;\n}\nfunction verifyDropResultType(dropResult) {\n invariant(typeof dropResult === 'undefined' || isObject(dropResult), 'Drop result must either be an object or undefined.');\n}\nfunction getDroppableTargets(monitor) {\n const targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);\n targetIds.reverse();\n return targetIds;\n}\n\n//# sourceMappingURL=drop.js.map","import { invariant } from '@react-dnd/invariant';\nimport { END_DRAG } from './types.js';\nexport function createEndDrag(manager) {\n return function endDrag() {\n const monitor = manager.getMonitor();\n const registry = manager.getRegistry();\n verifyIsDragging(monitor);\n const sourceId = monitor.getSourceId();\n if (sourceId != null) {\n const source = registry.getSource(sourceId, true);\n source.endDrag(monitor, sourceId);\n registry.unpinSource();\n }\n return {\n type: END_DRAG\n };\n };\n}\nfunction verifyIsDragging(monitor) {\n invariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.');\n}\n\n//# sourceMappingURL=endDrag.js.map","export function matchesType(targetType, draggedItemType) {\n if (draggedItemType === null) {\n return targetType === null;\n }\n return Array.isArray(targetType) ? targetType.some((t)=>t === draggedItemType\n ) : targetType === draggedItemType;\n}\n\n//# sourceMappingURL=matchesType.js.map","import { invariant } from '@react-dnd/invariant';\nimport { matchesType } from '../../utils/matchesType.js';\nimport { HOVER } from './types.js';\nexport function createHover(manager) {\n return function hover(targetIdsArg, { clientOffset } = {}) {\n verifyTargetIdsIsArray(targetIdsArg);\n const targetIds = targetIdsArg.slice(0);\n const monitor = manager.getMonitor();\n const registry = manager.getRegistry();\n const draggedItemType = monitor.getItemType();\n removeNonMatchingTargetIds(targetIds, registry, draggedItemType);\n checkInvariants(targetIds, monitor, registry);\n hoverAllTargets(targetIds, monitor, registry);\n return {\n type: HOVER,\n payload: {\n targetIds,\n clientOffset: clientOffset || null\n }\n };\n };\n}\nfunction verifyTargetIdsIsArray(targetIdsArg) {\n invariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.');\n}\nfunction checkInvariants(targetIds, monitor, registry) {\n invariant(monitor.isDragging(), 'Cannot call hover while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call hover after drop.');\n for(let i = 0; i < targetIds.length; i++){\n const targetId = targetIds[i];\n invariant(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');\n const target = registry.getTarget(targetId);\n invariant(target, 'Expected targetIds to be registered.');\n }\n}\nfunction removeNonMatchingTargetIds(targetIds, registry, draggedItemType) {\n // Remove those targetIds that don't match the targetType. This\n // fixes shallow isOver which would only be non-shallow because of\n // non-matching targets.\n for(let i = targetIds.length - 1; i >= 0; i--){\n const targetId = targetIds[i];\n const targetType = registry.getTargetType(targetId);\n if (!matchesType(targetType, draggedItemType)) {\n targetIds.splice(i, 1);\n }\n }\n}\nfunction hoverAllTargets(targetIds, monitor, registry) {\n // Finally call hover on all matching targets.\n targetIds.forEach(function(targetId) {\n const target = registry.getTarget(targetId);\n target.hover(monitor, targetId);\n });\n}\n\n//# sourceMappingURL=hover.js.map","import { PUBLISH_DRAG_SOURCE } from './types.js';\nexport function createPublishDragSource(manager) {\n return function publishDragSource() {\n const monitor = manager.getMonitor();\n if (monitor.isDragging()) {\n return {\n type: PUBLISH_DRAG_SOURCE\n };\n }\n return;\n };\n}\n\n//# sourceMappingURL=publishDragSource.js.map","import { createBeginDrag } from './beginDrag.js';\nimport { createDrop } from './drop.js';\nimport { createEndDrag } from './endDrag.js';\nimport { createHover } from './hover.js';\nimport { createPublishDragSource } from './publishDragSource.js';\nexport * from './types.js';\nexport function createDragDropActions(manager) {\n return {\n beginDrag: createBeginDrag(manager),\n publishDragSource: createPublishDragSource(manager),\n hover: createHover(manager),\n drop: createDrop(manager),\n endDrag: createEndDrag(manager)\n };\n}\n\n//# sourceMappingURL=index.js.map","import { createDragDropActions } from '../actions/dragDrop/index.js';\nexport class DragDropManagerImpl {\n receiveBackend(backend) {\n this.backend = backend;\n }\n getMonitor() {\n return this.monitor;\n }\n getBackend() {\n return this.backend;\n }\n getRegistry() {\n return this.monitor.registry;\n }\n getActions() {\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */ const manager = this;\n const { dispatch } = this.store;\n function bindActionCreator(actionCreator) {\n return (...args)=>{\n const action = actionCreator.apply(manager, args);\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n const actions = createDragDropActions(this);\n return Object.keys(actions).reduce((boundActions, key)=>{\n const action = actions[key];\n boundActions[key] = bindActionCreator(action);\n return boundActions;\n }, {});\n }\n dispatch(action) {\n this.store.dispatch(action);\n }\n constructor(store, monitor){\n this.isSetUp = false;\n this.handleRefCountChange = ()=>{\n const shouldSetUp = this.store.getState().refCount > 0;\n if (this.backend) {\n if (shouldSetUp && !this.isSetUp) {\n this.backend.setup();\n this.isSetUp = true;\n } else if (!shouldSetUp && this.isSetUp) {\n this.backend.teardown();\n this.isSetUp = false;\n }\n }\n };\n this.store = store;\n this.monitor = monitor;\n store.subscribe(this.handleRefCountChange);\n }\n}\n\n//# sourceMappingURL=DragDropManagerImpl.js.map","/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */ export function add(a, b) {\n return {\n x: a.x + b.x,\n y: a.y + b.y\n };\n}\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */ export function subtract(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */ export function getSourceClientOffset(state) {\n const { clientOffset , initialClientOffset , initialSourceClientOffset } = state;\n if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n return null;\n }\n return subtract(add(clientOffset, initialSourceClientOffset), initialClientOffset);\n}\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */ export function getDifferenceFromInitialOffset(state) {\n const { clientOffset , initialClientOffset } = state;\n if (!clientOffset || !initialClientOffset) {\n return null;\n }\n return subtract(clientOffset, initialClientOffset);\n}\n\n//# sourceMappingURL=coords.js.map","import { intersection } from './js_utils.js';\nexport const NONE = [];\nexport const ALL = [];\nNONE.__IS_NONE__ = true;\nALL.__IS_ALL__ = true;\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */ export function areDirty(dirtyIds, handlerIds) {\n if (dirtyIds === NONE) {\n return false;\n }\n if (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n return true;\n }\n const commonIds = intersection(handlerIds, dirtyIds);\n return commonIds.length > 0;\n}\n\n//# sourceMappingURL=dirtiness.js.map","import { invariant } from '@react-dnd/invariant';\nimport { getDifferenceFromInitialOffset, getSourceClientOffset } from '../utils/coords.js';\nimport { areDirty } from '../utils/dirtiness.js';\nimport { matchesType } from '../utils/matchesType.js';\nexport class DragDropMonitorImpl {\n subscribeToStateChange(listener, options = {}) {\n const { handlerIds } = options;\n invariant(typeof listener === 'function', 'listener must be a function.');\n invariant(typeof handlerIds === 'undefined' || Array.isArray(handlerIds), 'handlerIds, when specified, must be an array of strings.');\n let prevStateId = this.store.getState().stateId;\n const handleChange = ()=>{\n const state = this.store.getState();\n const currentStateId = state.stateId;\n try {\n const canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !areDirty(state.dirtyHandlerIds, handlerIds);\n if (!canSkipListener) {\n listener();\n }\n } finally{\n prevStateId = currentStateId;\n }\n };\n return this.store.subscribe(handleChange);\n }\n subscribeToOffsetChange(listener) {\n invariant(typeof listener === 'function', 'listener must be a function.');\n let previousState = this.store.getState().dragOffset;\n const handleChange = ()=>{\n const nextState = this.store.getState().dragOffset;\n if (nextState === previousState) {\n return;\n }\n previousState = nextState;\n listener();\n };\n return this.store.subscribe(handleChange);\n }\n canDragSource(sourceId) {\n if (!sourceId) {\n return false;\n }\n const source = this.registry.getSource(sourceId);\n invariant(source, `Expected to find a valid source. sourceId=${sourceId}`);\n if (this.isDragging()) {\n return false;\n }\n return source.canDrag(this, sourceId);\n }\n canDropOnTarget(targetId) {\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n const target = this.registry.getTarget(targetId);\n invariant(target, `Expected to find a valid target. targetId=${targetId}`);\n if (!this.isDragging() || this.didDrop()) {\n return false;\n }\n const targetType = this.registry.getTargetType(targetId);\n const draggedItemType = this.getItemType();\n return matchesType(targetType, draggedItemType) && target.canDrop(this, targetId);\n }\n isDragging() {\n return Boolean(this.getItemType());\n }\n isDraggingSource(sourceId) {\n // undefined on initial render\n if (!sourceId) {\n return false;\n }\n const source = this.registry.getSource(sourceId, true);\n invariant(source, `Expected to find a valid source. sourceId=${sourceId}`);\n if (!this.isDragging() || !this.isSourcePublic()) {\n return false;\n }\n const sourceType = this.registry.getSourceType(sourceId);\n const draggedItemType = this.getItemType();\n if (sourceType !== draggedItemType) {\n return false;\n }\n return source.isDragging(this, sourceId);\n }\n isOverTarget(targetId, options = {\n shallow: false\n }) {\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n const { shallow } = options;\n if (!this.isDragging()) {\n return false;\n }\n const targetType = this.registry.getTargetType(targetId);\n const draggedItemType = this.getItemType();\n if (draggedItemType && !matchesType(targetType, draggedItemType)) {\n return false;\n }\n const targetIds = this.getTargetIds();\n if (!targetIds.length) {\n return false;\n }\n const index = targetIds.indexOf(targetId);\n if (shallow) {\n return index === targetIds.length - 1;\n } else {\n return index > -1;\n }\n }\n getItemType() {\n return this.store.getState().dragOperation.itemType;\n }\n getItem() {\n return this.store.getState().dragOperation.item;\n }\n getSourceId() {\n return this.store.getState().dragOperation.sourceId;\n }\n getTargetIds() {\n return this.store.getState().dragOperation.targetIds;\n }\n getDropResult() {\n return this.store.getState().dragOperation.dropResult;\n }\n didDrop() {\n return this.store.getState().dragOperation.didDrop;\n }\n isSourcePublic() {\n return Boolean(this.store.getState().dragOperation.isSourcePublic);\n }\n getInitialClientOffset() {\n return this.store.getState().dragOffset.initialClientOffset;\n }\n getInitialSourceClientOffset() {\n return this.store.getState().dragOffset.initialSourceClientOffset;\n }\n getClientOffset() {\n return this.store.getState().dragOffset.clientOffset;\n }\n getSourceClientOffset() {\n return getSourceClientOffset(this.store.getState().dragOffset);\n }\n getDifferenceFromInitialOffset() {\n return getDifferenceFromInitialOffset(this.store.getState().dragOffset);\n }\n constructor(store, registry){\n this.store = store;\n this.registry = registry;\n }\n}\n\n//# sourceMappingURL=DragDropMonitorImpl.js.map","// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n/* globals self */ const scope = typeof global !== 'undefined' ? global : self;\nconst BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\nexport function makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n const timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n const intervalHandle = setInterval(handleTimer, 50);\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nexport function makeRequestCallFromMutationObserver(callback) {\n let toggle = 1;\n const observer = new BrowserMutationObserver(callback);\n const node = document.createTextNode('');\n observer.observe(node, {\n characterData: true\n });\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\nexport const makeRequestCall = typeof BrowserMutationObserver === 'function' ? // reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nmakeRequestCallFromMutationObserver : // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\nmakeRequestCallFromTimer;\n\n//# sourceMappingURL=makeRequestCall.js.map","/* eslint-disable no-restricted-globals, @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-non-null-assertion */ import { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.js';\nexport class AsapQueue {\n // Use the fastest means possible to execute a task in its own turn, with\n // priority over other events including IO, animation, reflow, and redraw\n // events in browsers.\n //\n // An exception thrown by a task will permanently interrupt the processing of\n // subsequent tasks. The higher level `asap` function ensures that if an\n // exception is thrown by a task, that the task queue will continue flushing as\n // soon as possible, but if you use `rawAsap` directly, you are responsible to\n // either ensure that no exceptions are thrown from your task, or to manually\n // call `rawAsap.requestFlush` if an exception is thrown.\n enqueueTask(task) {\n const { queue: q , requestFlush } = this;\n if (!q.length) {\n requestFlush();\n this.flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n q[q.length] = task;\n }\n constructor(){\n this.queue = [];\n // We queue errors to ensure they are thrown in right order (FIFO).\n // Array-as-queue is good enough here, since we are just dealing with exceptions.\n this.pendingErrors = [];\n // Once a flush has been requested, no further calls to `requestFlush` are\n // necessary until the next `flush` completes.\n // @ts-ignore\n this.flushing = false;\n // The position of the next task to execute in the task queue. This is\n // preserved between calls to `flush` so that it can be resumed if\n // a task throws an exception.\n this.index = 0;\n // If a task schedules additional tasks recursively, the task queue can grow\n // unbounded. To prevent memory exhaustion, the task queue will periodically\n // truncate already-completed tasks.\n this.capacity = 1024;\n // The flush function processes all tasks that have been scheduled with\n // `rawAsap` unless and until one of those tasks throws an exception.\n // If a task throws an exception, `flush` ensures that its state will remain\n // consistent and will resume where it left off when called again.\n // However, `flush` does not make any arrangements to be called again if an\n // exception is thrown.\n this.flush = ()=>{\n const { queue: q } = this;\n while(this.index < q.length){\n const currentIndex = this.index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n this.index++;\n q[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (this.index > this.capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for(let scan = 0, newLength = q.length - this.index; scan < newLength; scan++){\n q[scan] = q[scan + this.index];\n }\n q.length -= this.index;\n this.index = 0;\n }\n }\n q.length = 0;\n this.index = 0;\n this.flushing = false;\n };\n // In a web browser, exceptions are not fatal. However, to avoid\n // slowing down the queue of pending tasks, we rethrow the error in a\n // lower priority turn.\n this.registerPendingError = (err)=>{\n this.pendingErrors.push(err);\n this.requestErrorThrow();\n };\n // `requestFlush` requests that the high priority event queue be flushed as\n // soon as possible.\n // This is useful to prevent an error thrown in a task from stalling the event\n // queue if the exception handled by Node.js’s\n // `process.on(\"uncaughtException\")` or by a domain.\n // `requestFlush` is implemented using a strategy based on data collected from\n // every available SauceLabs Selenium web driver worker at time of writing.\n // https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n this.requestFlush = makeRequestCall(this.flush);\n this.requestErrorThrow = makeRequestCallFromTimer(()=>{\n // Throw first error\n if (this.pendingErrors.length) {\n throw this.pendingErrors.shift();\n }\n });\n }\n} // The message channel technique was discovered by Malte Ubl and was the\n // original foundation for this library.\n // http://www.nonblocking.io/2011/06/windownexttick.html\n // Safari 6.0.5 (at least) intermittently fails to create message ports on a\n // page's first load. Thankfully, this version of Safari supports\n // MutationObservers, so we don't need to fall back in that case.\n // function makeRequestCallFromMessageChannel(callback) {\n // var channel = new MessageChannel();\n // channel.port1.onmessage = callback;\n // return function requestCall() {\n // channel.port2.postMessage(0);\n // };\n // }\n // For reasons explained above, we are also unable to use `setImmediate`\n // under any circumstances.\n // Even if we were, there is another bug in Internet Explorer 10.\n // It is not sufficient to assign `setImmediate` to `requestFlush` because\n // `setImmediate` must be called *by name* and therefore must be wrapped in a\n // closure.\n // Never forget.\n // function makeRequestCallFromSetImmediate(callback) {\n // return function requestCall() {\n // setImmediate(callback);\n // };\n // }\n // Safari 6.0 has a problem where timers will get lost while the user is\n // scrolling. This problem does not impact ASAP because Safari 6.0 supports\n // mutation observers, so that implementation is used instead.\n // However, if we ever elect to use timers in Safari, the prevalent work-around\n // is to add a scroll event listener that calls for a flush.\n // `setTimeout` does not call the passed callback if the delay is less than\n // approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n // even then.\n // This is for `asap.js` only.\n // Its name will be periodically randomized to break any code that depends on\n // // its existence.\n // rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n // ASAP was originally a nextTick shim included in Q. This was factored out\n // into this ASAP package. It was later adapted to RSVP which made further\n // amendments. These decisions, particularly to marginalize MessageChannel and\n // to capture the MutationObserver implementation in a closure, were integrated\n // back into ASAP proper.\n // https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n//# sourceMappingURL=AsapQueue.js.map","// `call`, just like a function.\nexport class RawTask {\n call() {\n try {\n this.task && this.task();\n } catch (error) {\n this.onError(error);\n } finally{\n this.task = null;\n this.release(this);\n }\n }\n constructor(onError, release){\n this.onError = onError;\n this.release = release;\n this.task = null;\n }\n}\n\n//# sourceMappingURL=RawTask.js.map","import { RawTask } from './RawTask.js';\nexport class TaskFactory {\n create(task) {\n const tasks = this.freeTasks;\n const t1 = tasks.length ? tasks.pop() : new RawTask(this.onError, (t)=>tasks[tasks.length] = t\n );\n t1.task = task;\n return t1;\n }\n constructor(onError){\n this.onError = onError;\n this.freeTasks = [];\n }\n}\n\n//# sourceMappingURL=TaskFactory.js.map","import { AsapQueue } from './AsapQueue.js';\nimport { TaskFactory } from './TaskFactory.js';\nconst asapQueue = new AsapQueue();\nconst taskFactory = new TaskFactory(asapQueue.registerPendingError);\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */ export function asap(task) {\n asapQueue.enqueueTask(taskFactory.create(task));\n}\n\n//# sourceMappingURL=asap.js.map","export const ADD_SOURCE = 'dnd-core/ADD_SOURCE';\nexport const ADD_TARGET = 'dnd-core/ADD_TARGET';\nexport const REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';\nexport const REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';\nexport function addSource(sourceId) {\n return {\n type: ADD_SOURCE,\n payload: {\n sourceId\n }\n };\n}\nexport function addTarget(targetId) {\n return {\n type: ADD_TARGET,\n payload: {\n targetId\n }\n };\n}\nexport function removeSource(sourceId) {\n return {\n type: REMOVE_SOURCE,\n payload: {\n sourceId\n }\n };\n}\nexport function removeTarget(targetId) {\n return {\n type: REMOVE_TARGET,\n payload: {\n targetId\n }\n };\n}\n\n//# sourceMappingURL=registry.js.map","import { invariant } from '@react-dnd/invariant';\nexport function validateSourceContract(source) {\n invariant(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');\n invariant(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');\n invariant(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');\n}\nexport function validateTargetContract(target) {\n invariant(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');\n invariant(typeof target.hover === 'function', 'Expected hover to be a function.');\n invariant(typeof target.drop === 'function', 'Expected beginDrag to be a function.');\n}\nexport function validateType(type, allowArray) {\n if (allowArray && Array.isArray(type)) {\n type.forEach((t)=>validateType(t, false)\n );\n return;\n }\n invariant(typeof type === 'string' || typeof type === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');\n}\n\n//# sourceMappingURL=contracts.js.map","export var HandlerRole;\n(function(HandlerRole) {\n HandlerRole[\"SOURCE\"] = \"SOURCE\";\n HandlerRole[\"TARGET\"] = \"TARGET\";\n})(HandlerRole || (HandlerRole = {}));\n\n//# sourceMappingURL=interfaces.js.map","let nextUniqueId = 0;\nexport function getNextUniqueId() {\n return nextUniqueId++;\n}\n\n//# sourceMappingURL=getNextUniqueId.js.map","import { asap } from '@react-dnd/asap';\nimport { invariant } from '@react-dnd/invariant';\nimport { addSource, addTarget, removeSource, removeTarget } from '../actions/registry.js';\nimport { validateSourceContract, validateTargetContract, validateType } from '../contracts.js';\nimport { HandlerRole } from '../interfaces.js';\nimport { getNextUniqueId } from '../utils/getNextUniqueId.js';\nfunction getNextHandlerId(role) {\n const id = getNextUniqueId().toString();\n switch(role){\n case HandlerRole.SOURCE:\n return `S${id}`;\n case HandlerRole.TARGET:\n return `T${id}`;\n default:\n throw new Error(`Unknown Handler Role: ${role}`);\n }\n}\nfunction parseRoleFromHandlerId(handlerId) {\n switch(handlerId[0]){\n case 'S':\n return HandlerRole.SOURCE;\n case 'T':\n return HandlerRole.TARGET;\n default:\n throw new Error(`Cannot parse handler ID: ${handlerId}`);\n }\n}\nfunction mapContainsValue(map, searchValue) {\n const entries = map.entries();\n let isDone = false;\n do {\n const { done , value: [, value] , } = entries.next();\n if (value === searchValue) {\n return true;\n }\n isDone = !!done;\n }while (!isDone)\n return false;\n}\nexport class HandlerRegistryImpl {\n addSource(type, source) {\n validateType(type);\n validateSourceContract(source);\n const sourceId = this.addHandler(HandlerRole.SOURCE, type, source);\n this.store.dispatch(addSource(sourceId));\n return sourceId;\n }\n addTarget(type, target) {\n validateType(type, true);\n validateTargetContract(target);\n const targetId = this.addHandler(HandlerRole.TARGET, type, target);\n this.store.dispatch(addTarget(targetId));\n return targetId;\n }\n containsHandler(handler) {\n return mapContainsValue(this.dragSources, handler) || mapContainsValue(this.dropTargets, handler);\n }\n getSource(sourceId, includePinned = false) {\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n const isPinned = includePinned && sourceId === this.pinnedSourceId;\n const source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId);\n return source;\n }\n getTarget(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.dropTargets.get(targetId);\n }\n getSourceType(sourceId) {\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n return this.types.get(sourceId);\n }\n getTargetType(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.types.get(targetId);\n }\n isSourceId(handlerId) {\n const role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.SOURCE;\n }\n isTargetId(handlerId) {\n const role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.TARGET;\n }\n removeSource(sourceId) {\n invariant(this.getSource(sourceId), 'Expected an existing source.');\n this.store.dispatch(removeSource(sourceId));\n asap(()=>{\n this.dragSources.delete(sourceId);\n this.types.delete(sourceId);\n });\n }\n removeTarget(targetId) {\n invariant(this.getTarget(targetId), 'Expected an existing target.');\n this.store.dispatch(removeTarget(targetId));\n this.dropTargets.delete(targetId);\n this.types.delete(targetId);\n }\n pinSource(sourceId) {\n const source = this.getSource(sourceId);\n invariant(source, 'Expected an existing source.');\n this.pinnedSourceId = sourceId;\n this.pinnedSource = source;\n }\n unpinSource() {\n invariant(this.pinnedSource, 'No source is pinned at the time.');\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n }\n addHandler(role, type, handler) {\n const id = getNextHandlerId(role);\n this.types.set(id, type);\n if (role === HandlerRole.SOURCE) {\n this.dragSources.set(id, handler);\n } else if (role === HandlerRole.TARGET) {\n this.dropTargets.set(id, handler);\n }\n return id;\n }\n constructor(store){\n this.types = new Map();\n this.dragSources = new Map();\n this.dropTargets = new Map();\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n this.store = store;\n }\n}\n\n//# sourceMappingURL=HandlerRegistryImpl.js.map","export const strictEquality = (a, b)=>a === b\n;\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */ export function areCoordsEqual(offsetA, offsetB) {\n if (!offsetA && !offsetB) {\n return true;\n } else if (!offsetA || !offsetB) {\n return false;\n } else {\n return offsetA.x === offsetB.x && offsetA.y === offsetB.y;\n }\n}\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */ export function areArraysEqual(a, b, isEqual = strictEquality) {\n if (a.length !== b.length) {\n return false;\n }\n for(let i = 0; i < a.length; ++i){\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n}\n\n//# sourceMappingURL=equality.js.map","import { BEGIN_DRAG, DROP, END_DRAG, HOVER, PUBLISH_DRAG_SOURCE } from '../actions/dragDrop/index.js';\nimport { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry.js';\nimport { ALL, NONE } from '../utils/dirtiness.js';\nimport { areArraysEqual } from '../utils/equality.js';\nimport { xor } from '../utils/js_utils.js';\nexport function reduce(// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_state = NONE, action) {\n switch(action.type){\n case HOVER:\n break;\n case ADD_SOURCE:\n case ADD_TARGET:\n case REMOVE_TARGET:\n case REMOVE_SOURCE:\n return NONE;\n case BEGIN_DRAG:\n case PUBLISH_DRAG_SOURCE:\n case END_DRAG:\n case DROP:\n default:\n return ALL;\n }\n const { targetIds =[] , prevTargetIds =[] } = action.payload;\n const result = xor(targetIds, prevTargetIds);\n const didChange = result.length > 0 || !areArraysEqual(targetIds, prevTargetIds);\n if (!didChange) {\n return NONE;\n }\n // Check the target ids at the innermost position. If they are valid, add them\n // to the result\n const prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];\n const innermostTargetId = targetIds[targetIds.length - 1];\n if (prevInnermostTargetId !== innermostTargetId) {\n if (prevInnermostTargetId) {\n result.push(prevInnermostTargetId);\n }\n if (innermostTargetId) {\n result.push(innermostTargetId);\n }\n }\n return result;\n}\n\n//# sourceMappingURL=dirtyHandlerIds.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nimport { BEGIN_DRAG, DROP, END_DRAG, HOVER, INIT_COORDS } from '../actions/dragDrop/index.js';\nimport { areCoordsEqual } from '../utils/equality.js';\nconst initialState = {\n initialSourceClientOffset: null,\n initialClientOffset: null,\n clientOffset: null\n};\nexport function reduce(state = initialState, action) {\n const { payload } = action;\n switch(action.type){\n case INIT_COORDS:\n case BEGIN_DRAG:\n return {\n initialSourceClientOffset: payload.sourceClientOffset,\n initialClientOffset: payload.clientOffset,\n clientOffset: payload.clientOffset\n };\n case HOVER:\n if (areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n return state;\n }\n return _objectSpread({}, state, {\n clientOffset: payload.clientOffset\n });\n case END_DRAG:\n case DROP:\n return initialState;\n default:\n return state;\n }\n}\n\n//# sourceMappingURL=dragOffset.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nimport { BEGIN_DRAG, DROP, END_DRAG, HOVER, PUBLISH_DRAG_SOURCE } from '../actions/dragDrop/index.js';\nimport { REMOVE_TARGET } from '../actions/registry.js';\nimport { without } from '../utils/js_utils.js';\nconst initialState = {\n itemType: null,\n item: null,\n sourceId: null,\n targetIds: [],\n dropResult: null,\n didDrop: false,\n isSourcePublic: null\n};\nexport function reduce(state = initialState, action) {\n const { payload } = action;\n switch(action.type){\n case BEGIN_DRAG:\n return _objectSpread({}, state, {\n itemType: payload.itemType,\n item: payload.item,\n sourceId: payload.sourceId,\n isSourcePublic: payload.isSourcePublic,\n dropResult: null,\n didDrop: false\n });\n case PUBLISH_DRAG_SOURCE:\n return _objectSpread({}, state, {\n isSourcePublic: true\n });\n case HOVER:\n return _objectSpread({}, state, {\n targetIds: payload.targetIds\n });\n case REMOVE_TARGET:\n if (state.targetIds.indexOf(payload.targetId) === -1) {\n return state;\n }\n return _objectSpread({}, state, {\n targetIds: without(state.targetIds, payload.targetId)\n });\n case DROP:\n return _objectSpread({}, state, {\n dropResult: payload.dropResult,\n didDrop: true,\n targetIds: []\n });\n case END_DRAG:\n return _objectSpread({}, state, {\n itemType: null,\n item: null,\n sourceId: null,\n dropResult: null,\n didDrop: false,\n isSourcePublic: null,\n targetIds: []\n });\n default:\n return state;\n }\n}\n\n//# sourceMappingURL=dragOperation.js.map","import { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry.js';\nexport function reduce(state = 0, action) {\n switch(action.type){\n case ADD_SOURCE:\n case ADD_TARGET:\n return state + 1;\n case REMOVE_SOURCE:\n case REMOVE_TARGET:\n return state - 1;\n default:\n return state;\n }\n}\n\n//# sourceMappingURL=refCount.js.map","export function reduce(state = 0) {\n return state + 1;\n}\n\n//# sourceMappingURL=stateId.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nimport { get } from '../utils/js_utils.js';\nimport { reduce as dirtyHandlerIds } from './dirtyHandlerIds.js';\nimport { reduce as dragOffset } from './dragOffset.js';\nimport { reduce as dragOperation } from './dragOperation.js';\nimport { reduce as refCount } from './refCount.js';\nimport { reduce as stateId } from './stateId.js';\nexport function reduce(state = {}, action) {\n return {\n dirtyHandlerIds: dirtyHandlerIds(state.dirtyHandlerIds, {\n type: action.type,\n payload: _objectSpread({}, action.payload, {\n prevTargetIds: get(state, 'dragOperation.targetIds', [])\n })\n }),\n dragOffset: dragOffset(state.dragOffset, action),\n refCount: refCount(state.refCount, action),\n dragOperation: dragOperation(state.dragOperation, action),\n stateId: stateId(state.stateId)\n };\n}\n\n//# sourceMappingURL=index.js.map","import { createStore } from 'redux';\nimport { DragDropManagerImpl } from './classes/DragDropManagerImpl.js';\nimport { DragDropMonitorImpl } from './classes/DragDropMonitorImpl.js';\nimport { HandlerRegistryImpl } from './classes/HandlerRegistryImpl.js';\nimport { reduce } from './reducers/index.js';\nexport function createDragDropManager(backendFactory, globalContext = undefined, backendOptions = {}, debugMode = false) {\n const store = makeStoreInstance(debugMode);\n const monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store));\n const manager = new DragDropManagerImpl(store, monitor);\n const backend = backendFactory(manager, globalContext, backendOptions);\n manager.receiveBackend(backend);\n return manager;\n}\nfunction makeStoreInstance(debugMode) {\n // TODO: if we ever make a react-native version of this,\n // we'll need to consider how to pull off dev-tooling\n const reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;\n return createStore(reduce, debugMode && reduxDevTools && reduxDevTools({\n name: 'dnd-core',\n instanceId: 'dnd-core'\n }));\n}\n\n//# sourceMappingURL=createDragDropManager.js.map","function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for(i = 0; i < sourceSymbolKeys.length; i++){\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createDragDropManager } from 'dnd-core';\nimport { memo, useEffect } from 'react';\nimport { DndContext } from './DndContext.js';\nlet refCount = 0;\nconst INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');\nvar DndProvider = /*#__PURE__*/ memo(function DndProvider(_param) {\n var { children } = _param, props = _objectWithoutProperties(_param, [\n \"children\"\n ]);\n const [manager, isGlobalInstance] = getDndContextValue(props) // memoized from props\n ;\n /**\n\t\t * If the global context was used to store the DND context\n\t\t * then where theres no more references to it we should\n\t\t * clean it up to avoid memory leaks\n\t\t */ useEffect(()=>{\n if (isGlobalInstance) {\n const context = getGlobalContext();\n ++refCount;\n return ()=>{\n if (--refCount === 0) {\n context[INSTANCE_SYM] = null;\n }\n };\n }\n return;\n }, []);\n return /*#__PURE__*/ _jsx(DndContext.Provider, {\n value: manager,\n children: children\n });\n});\n/**\n * A React component that provides the React-DnD context\n */ export { DndProvider, };\nfunction getDndContextValue(props) {\n if ('manager' in props) {\n const manager = {\n dragDropManager: props.manager\n };\n return [\n manager,\n false\n ];\n }\n const manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);\n const isGlobalInstance = !props.context;\n return [\n manager,\n isGlobalInstance\n ];\n}\nfunction createSingletonDndContext(backend, context = getGlobalContext(), options, debugMode) {\n const ctx = context;\n if (!ctx[INSTANCE_SYM]) {\n ctx[INSTANCE_SYM] = {\n dragDropManager: createDragDropManager(backend, context, options, debugMode)\n };\n }\n return ctx[INSTANCE_SYM];\n}\nfunction getGlobalContext() {\n return typeof global !== 'undefined' ? global : window;\n}\n\n//# sourceMappingURL=DndProvider.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import { useEffect, useLayoutEffect } from 'react';\n// suppress the useLayoutEffect warning on server side.\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import equal from 'fast-deep-equal';\nimport { useCallback, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js';\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */ export function useCollector(monitor, collect, onUpdate) {\n const [collected, setCollected] = useState(()=>collect(monitor)\n );\n const updateCollected = useCallback(()=>{\n const nextValue = collect(monitor);\n // This needs to be a deep-equality check because some monitor-collected values\n // include XYCoord objects that may be equivalent, but do not have instance equality.\n if (!equal(collected, nextValue)) {\n setCollected(nextValue);\n if (onUpdate) {\n onUpdate();\n }\n }\n }, [\n collected,\n monitor,\n onUpdate\n ]);\n // update the collected properties after react renders.\n // Note that the \"Dustbin Stress Test\" fails if this is not\n // done when the component updates\n useIsomorphicLayoutEffect(updateCollected);\n return [\n collected,\n updateCollected\n ];\n}\n\n//# sourceMappingURL=useCollector.js.map","import { useCollector } from './useCollector.js';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js';\nexport function useMonitorOutput(monitor, collect, onCollect) {\n const [collected, updateCollected] = useCollector(monitor, collect, onCollect);\n useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() {\n const handlerId = monitor.getHandlerId();\n if (handlerId == null) {\n return;\n }\n return monitor.subscribeToStateChange(updateCollected, {\n handlerIds: [\n handlerId\n ]\n });\n }, [\n monitor,\n updateCollected\n ]);\n return collected;\n}\n\n//# sourceMappingURL=useMonitorOutput.js.map","import { useMonitorOutput } from './useMonitorOutput.js';\nexport function useCollectedProps(collector, monitor, connector) {\n return useMonitorOutput(monitor, collector || (()=>({})\n ), ()=>connector.reconnect()\n );\n}\n\n//# sourceMappingURL=useCollectedProps.js.map","import { useMemo } from 'react';\nexport function useOptionalFactory(arg, deps) {\n const memoDeps = [\n ...deps || []\n ];\n if (deps == null && typeof arg !== 'function') {\n memoDeps.push(arg);\n }\n return useMemo(()=>{\n return typeof arg === 'function' ? arg() : arg;\n }, memoDeps);\n}\n\n//# sourceMappingURL=useOptionalFactory.js.map","import { useMemo } from 'react';\nexport function useConnectDragSource(connector) {\n return useMemo(()=>connector.hooks.dragSource()\n , [\n connector\n ]);\n}\nexport function useConnectDragPreview(connector) {\n return useMemo(()=>connector.hooks.dragPreview()\n , [\n connector\n ]);\n}\n\n//# sourceMappingURL=connectors.js.map","import { invariant } from '@react-dnd/invariant';\nlet isCallingCanDrag = false;\nlet isCallingIsDragging = false;\nexport class DragSourceMonitorImpl {\n receiveHandlerId(sourceId) {\n this.sourceId = sourceId;\n }\n getHandlerId() {\n return this.sourceId;\n }\n canDrag() {\n invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n try {\n isCallingCanDrag = true;\n return this.internalMonitor.canDragSource(this.sourceId);\n } finally{\n isCallingCanDrag = false;\n }\n }\n isDragging() {\n if (!this.sourceId) {\n return false;\n }\n invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n try {\n isCallingIsDragging = true;\n return this.internalMonitor.isDraggingSource(this.sourceId);\n } finally{\n isCallingIsDragging = false;\n }\n }\n subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n isDraggingSource(sourceId) {\n return this.internalMonitor.isDraggingSource(sourceId);\n }\n isOverTarget(targetId, options) {\n return this.internalMonitor.isOverTarget(targetId, options);\n }\n getTargetIds() {\n return this.internalMonitor.getTargetIds();\n }\n isSourcePublic() {\n return this.internalMonitor.isSourcePublic();\n }\n getSourceId() {\n return this.internalMonitor.getSourceId();\n }\n subscribeToOffsetChange(listener) {\n return this.internalMonitor.subscribeToOffsetChange(listener);\n }\n canDragSource(sourceId) {\n return this.internalMonitor.canDragSource(sourceId);\n }\n canDropOnTarget(targetId) {\n return this.internalMonitor.canDropOnTarget(targetId);\n }\n getItemType() {\n return this.internalMonitor.getItemType();\n }\n getItem() {\n return this.internalMonitor.getItem();\n }\n getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n didDrop() {\n return this.internalMonitor.didDrop();\n }\n getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n constructor(manager){\n this.sourceId = null;\n this.internalMonitor = manager.getMonitor();\n }\n}\n\n//# sourceMappingURL=DragSourceMonitorImpl.js.map","import { invariant } from '@react-dnd/invariant';\nlet isCallingCanDrop = false;\nexport class DropTargetMonitorImpl {\n receiveHandlerId(targetId) {\n this.targetId = targetId;\n }\n getHandlerId() {\n return this.targetId;\n }\n subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n canDrop() {\n // Cut out early if the target id has not been set. This should prevent errors\n // where the user has an older version of dnd-core like in\n // https://github.com/react-dnd/react-dnd/issues/1310\n if (!this.targetId) {\n return false;\n }\n invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');\n try {\n isCallingCanDrop = true;\n return this.internalMonitor.canDropOnTarget(this.targetId);\n } finally{\n isCallingCanDrop = false;\n }\n }\n isOver(options) {\n if (!this.targetId) {\n return false;\n }\n return this.internalMonitor.isOverTarget(this.targetId, options);\n }\n getItemType() {\n return this.internalMonitor.getItemType();\n }\n getItem() {\n return this.internalMonitor.getItem();\n }\n getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n didDrop() {\n return this.internalMonitor.didDrop();\n }\n getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n constructor(manager){\n this.targetId = null;\n this.internalMonitor = manager.getMonitor();\n }\n}\n\n//# sourceMappingURL=DropTargetMonitorImpl.js.map","export function registerTarget(type, target, manager) {\n const registry = manager.getRegistry();\n const targetId = registry.addTarget(type, target);\n return [\n targetId,\n ()=>registry.removeTarget(targetId)\n ];\n}\nexport function registerSource(type, source, manager) {\n const registry = manager.getRegistry();\n const sourceId = registry.addSource(type, source);\n return [\n sourceId,\n ()=>registry.removeSource(sourceId)\n ];\n}\n\n//# sourceMappingURL=registration.js.map","export function shallowEqual(objA, objB, compare, compareContext) {\n let compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;\n if (compareResult !== void 0) {\n return !!compareResult;\n }\n if (objA === objB) {\n return true;\n }\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n // Test for A's keys different from B.\n for(let idx = 0; idx < keysA.length; idx++){\n const key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n const valueA = objA[key];\n const valueB = objB[key];\n compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n if (compareResult === false || compareResult === void 0 && valueA !== valueB) {\n return false;\n }\n }\n return true;\n}\n\n//# sourceMappingURL=index.js.map","export function isRef(obj) {\n return(// eslint-disable-next-line no-prototype-builtins\n obj !== null && typeof obj === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current'));\n}\n\n//# sourceMappingURL=isRef.js.map","import { invariant } from '@react-dnd/invariant';\nimport { cloneElement, isValidElement } from 'react';\nfunction throwIfCompositeComponentElement(element) {\n // Custom components can no longer be wrapped directly in React DnD 2.0\n // so that we don't need to depend on findDOMNode() from react-dom.\n if (typeof element.type === 'string') {\n return;\n }\n const displayName = element.type.displayName || element.type.name || 'the component';\n throw new Error('Only native element nodes can now be passed to React DnD connectors.' + `You can either wrap ${displayName} into a <div>, or turn it into a ` + 'drag source or a drop target itself.');\n}\nfunction wrapHookToRecognizeElement(hook) {\n return (elementOrNode = null, options = null)=>{\n // When passed a node, call the hook straight away.\n if (!isValidElement(elementOrNode)) {\n const node = elementOrNode;\n hook(node, options);\n // return the node so it can be chained (e.g. when within callback refs\n // <div ref={node => connectDragSource(connectDropTarget(node))}/>\n return node;\n }\n // If passed a ReactElement, clone it and attach this function as a ref.\n // This helps us achieve a neat API where user doesn't even know that refs\n // are being used under the hood.\n const element = elementOrNode;\n throwIfCompositeComponentElement(element);\n // When no options are passed, use the hook directly\n const ref = options ? (node)=>hook(node, options)\n : hook;\n return cloneWithRef(element, ref);\n };\n}\nexport function wrapConnectorHooks(hooks) {\n const wrappedHooks = {};\n Object.keys(hooks).forEach((key)=>{\n const hook = hooks[key];\n // ref objects should be passed straight through without wrapping\n if (key.endsWith('Ref')) {\n wrappedHooks[key] = hooks[key];\n } else {\n const wrappedHook = wrapHookToRecognizeElement(hook);\n wrappedHooks[key] = ()=>wrappedHook\n ;\n }\n });\n return wrappedHooks;\n}\nfunction setRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n}\nfunction cloneWithRef(element, newRef) {\n const previousRef = element.ref;\n invariant(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' + 'Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs');\n if (!previousRef) {\n // When there is no ref on the element, use the new ref directly\n return cloneElement(element, {\n ref: newRef\n });\n } else {\n return cloneElement(element, {\n ref: (node)=>{\n setRef(previousRef, node);\n setRef(newRef, node);\n }\n });\n }\n}\n\n//# sourceMappingURL=wrapConnectorHooks.js.map","import { shallowEqual } from '@react-dnd/shallowequal';\nimport { isRef } from './isRef.js';\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js';\nexport class SourceConnector {\n receiveHandlerId(newHandlerId) {\n if (this.handlerId === newHandlerId) {\n return;\n }\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n get connectTarget() {\n return this.dragSource;\n }\n get dragSourceOptions() {\n return this.dragSourceOptionsInternal;\n }\n set dragSourceOptions(options) {\n this.dragSourceOptionsInternal = options;\n }\n get dragPreviewOptions() {\n return this.dragPreviewOptionsInternal;\n }\n set dragPreviewOptions(options) {\n this.dragPreviewOptionsInternal = options;\n }\n reconnect() {\n const didChange = this.reconnectDragSource();\n this.reconnectDragPreview(didChange);\n }\n reconnectDragSource() {\n const dragSource = this.dragSource;\n // if nothing has changed then don't resubscribe\n const didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();\n if (didChange) {\n this.disconnectDragSource();\n }\n if (!this.handlerId) {\n return didChange;\n }\n if (!dragSource) {\n this.lastConnectedDragSource = dragSource;\n return didChange;\n }\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragSource = dragSource;\n this.lastConnectedDragSourceOptions = this.dragSourceOptions;\n this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);\n }\n return didChange;\n }\n reconnectDragPreview(forceDidChange = false) {\n const dragPreview = this.dragPreview;\n // if nothing has changed then don't resubscribe\n const didChange = forceDidChange || this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();\n if (didChange) {\n this.disconnectDragPreview();\n }\n if (!this.handlerId) {\n return;\n }\n if (!dragPreview) {\n this.lastConnectedDragPreview = dragPreview;\n return;\n }\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragPreview = dragPreview;\n this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;\n this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);\n }\n }\n didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n didConnectedDragSourceChange() {\n return this.lastConnectedDragSource !== this.dragSource;\n }\n didConnectedDragPreviewChange() {\n return this.lastConnectedDragPreview !== this.dragPreview;\n }\n didDragSourceOptionsChange() {\n return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions);\n }\n didDragPreviewOptionsChange() {\n return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);\n }\n disconnectDragSource() {\n if (this.dragSourceUnsubscribe) {\n this.dragSourceUnsubscribe();\n this.dragSourceUnsubscribe = undefined;\n }\n }\n disconnectDragPreview() {\n if (this.dragPreviewUnsubscribe) {\n this.dragPreviewUnsubscribe();\n this.dragPreviewUnsubscribe = undefined;\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }\n get dragSource() {\n return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;\n }\n get dragPreview() {\n return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;\n }\n clearDragSource() {\n this.dragSourceNode = null;\n this.dragSourceRef = null;\n }\n clearDragPreview() {\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n constructor(backend){\n this.hooks = wrapConnectorHooks({\n dragSource: (node, options)=>{\n this.clearDragSource();\n this.dragSourceOptions = options || null;\n if (isRef(node)) {\n this.dragSourceRef = node;\n } else {\n this.dragSourceNode = node;\n }\n this.reconnectDragSource();\n },\n dragPreview: (node, options)=>{\n this.clearDragPreview();\n this.dragPreviewOptions = options || null;\n if (isRef(node)) {\n this.dragPreviewRef = node;\n } else {\n this.dragPreviewNode = node;\n }\n this.reconnectDragPreview();\n }\n });\n this.handlerId = null;\n // The drop target may either be attached via ref or connect function\n this.dragSourceRef = null;\n this.dragSourceOptionsInternal = null;\n // The drag preview may either be attached via ref or connect function\n this.dragPreviewRef = null;\n this.dragPreviewOptionsInternal = null;\n this.lastConnectedHandlerId = null;\n this.lastConnectedDragSource = null;\n this.lastConnectedDragSourceOptions = null;\n this.lastConnectedDragPreview = null;\n this.lastConnectedDragPreviewOptions = null;\n this.backend = backend;\n }\n}\n\n//# sourceMappingURL=SourceConnector.js.map","import { shallowEqual } from '@react-dnd/shallowequal';\nimport { isRef } from './isRef.js';\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js';\nexport class TargetConnector {\n get connectTarget() {\n return this.dropTarget;\n }\n reconnect() {\n // if nothing has changed then don't resubscribe\n const didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();\n if (didChange) {\n this.disconnectDropTarget();\n }\n const dropTarget = this.dropTarget;\n if (!this.handlerId) {\n return;\n }\n if (!dropTarget) {\n this.lastConnectedDropTarget = dropTarget;\n return;\n }\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDropTarget = dropTarget;\n this.lastConnectedDropTargetOptions = this.dropTargetOptions;\n this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);\n }\n }\n receiveHandlerId(newHandlerId) {\n if (newHandlerId === this.handlerId) {\n return;\n }\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n get dropTargetOptions() {\n return this.dropTargetOptionsInternal;\n }\n set dropTargetOptions(options) {\n this.dropTargetOptionsInternal = options;\n }\n didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n didDropTargetChange() {\n return this.lastConnectedDropTarget !== this.dropTarget;\n }\n didOptionsChange() {\n return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions);\n }\n disconnectDropTarget() {\n if (this.unsubscribeDropTarget) {\n this.unsubscribeDropTarget();\n this.unsubscribeDropTarget = undefined;\n }\n }\n get dropTarget() {\n return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;\n }\n clearDropTarget() {\n this.dropTargetRef = null;\n this.dropTargetNode = null;\n }\n constructor(backend){\n this.hooks = wrapConnectorHooks({\n dropTarget: (node, options)=>{\n this.clearDropTarget();\n this.dropTargetOptions = options;\n if (isRef(node)) {\n this.dropTargetRef = node;\n } else {\n this.dropTargetNode = node;\n }\n this.reconnect();\n }\n });\n this.handlerId = null;\n // The drop target may either be attached via ref or connect function\n this.dropTargetRef = null;\n this.dropTargetOptionsInternal = null;\n this.lastConnectedHandlerId = null;\n this.lastConnectedDropTarget = null;\n this.lastConnectedDropTargetOptions = null;\n this.backend = backend;\n }\n}\n\n//# sourceMappingURL=TargetConnector.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useContext } from 'react';\nimport { DndContext } from '../core/index.js';\n/**\n * A hook to retrieve the DragDropManager from Context\n */ export function useDragDropManager() {\n const { dragDropManager } = useContext(DndContext);\n invariant(dragDropManager != null, 'Expected drag drop context');\n return dragDropManager;\n}\n\n//# sourceMappingURL=useDragDropManager.js.map","import { useMemo } from 'react';\nimport { SourceConnector } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nexport function useDragSourceConnector(dragSourceOptions, dragPreviewOptions) {\n const manager = useDragDropManager();\n const connector = useMemo(()=>new SourceConnector(manager.getBackend())\n , [\n manager\n ]);\n useIsomorphicLayoutEffect(()=>{\n connector.dragSourceOptions = dragSourceOptions || null;\n connector.reconnect();\n return ()=>connector.disconnectDragSource()\n ;\n }, [\n connector,\n dragSourceOptions\n ]);\n useIsomorphicLayoutEffect(()=>{\n connector.dragPreviewOptions = dragPreviewOptions || null;\n connector.reconnect();\n return ()=>connector.disconnectDragPreview()\n ;\n }, [\n connector,\n dragPreviewOptions\n ]);\n return connector;\n}\n\n//# sourceMappingURL=useDragSourceConnector.js.map","import { useMemo } from 'react';\nimport { DragSourceMonitorImpl } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nexport function useDragSourceMonitor() {\n const manager = useDragDropManager();\n return useMemo(()=>new DragSourceMonitorImpl(manager)\n , [\n manager\n ]);\n}\n\n//# sourceMappingURL=useDragSourceMonitor.js.map","export class DragSourceImpl {\n beginDrag() {\n const spec = this.spec;\n const monitor = this.monitor;\n let result = null;\n if (typeof spec.item === 'object') {\n result = spec.item;\n } else if (typeof spec.item === 'function') {\n result = spec.item(monitor);\n } else {\n result = {};\n }\n return result !== null && result !== void 0 ? result : null;\n }\n canDrag() {\n const spec = this.spec;\n const monitor = this.monitor;\n if (typeof spec.canDrag === 'boolean') {\n return spec.canDrag;\n } else if (typeof spec.canDrag === 'function') {\n return spec.canDrag(monitor);\n } else {\n return true;\n }\n }\n isDragging(globalMonitor, target) {\n const spec = this.spec;\n const monitor = this.monitor;\n const { isDragging } = spec;\n return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId();\n }\n endDrag() {\n const spec = this.spec;\n const monitor = this.monitor;\n const connector = this.connector;\n const { end } = spec;\n if (end) {\n end(monitor.getItem(), monitor);\n }\n connector.reconnect();\n }\n constructor(spec, monitor, connector){\n this.spec = spec;\n this.monitor = monitor;\n this.connector = connector;\n }\n}\n\n//# sourceMappingURL=DragSourceImpl.js.map","import { useEffect, useMemo } from 'react';\nimport { DragSourceImpl } from './DragSourceImpl.js';\nexport function useDragSource(spec, monitor, connector) {\n const handler = useMemo(()=>new DragSourceImpl(spec, monitor, connector)\n , [\n monitor,\n connector\n ]);\n useEffect(()=>{\n handler.spec = spec;\n }, [\n spec\n ]);\n return handler;\n}\n\n//# sourceMappingURL=useDragSource.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useMemo } from 'react';\nexport function useDragType(spec) {\n return useMemo(()=>{\n const result = spec.type;\n invariant(result != null, 'spec.type must be defined');\n return result;\n }, [\n spec\n ]);\n}\n\n//# sourceMappingURL=useDragType.js.map","import { registerSource } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nimport { useDragSource } from './useDragSource.js';\nimport { useDragType } from './useDragType.js';\nexport function useRegisteredDragSource(spec, monitor, connector) {\n const manager = useDragDropManager();\n const handler = useDragSource(spec, monitor, connector);\n const itemType = useDragType(spec);\n useIsomorphicLayoutEffect(function registerDragSource() {\n if (itemType != null) {\n const [handlerId, unregister] = registerSource(itemType, handler, manager);\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }\n return;\n }, [\n manager,\n monitor,\n connector,\n handler,\n itemType\n ]);\n}\n\n//# sourceMappingURL=useRegisteredDragSource.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useCollectedProps } from '../useCollectedProps.js';\nimport { useOptionalFactory } from '../useOptionalFactory.js';\nimport { useConnectDragPreview, useConnectDragSource } from './connectors.js';\nimport { useDragSourceConnector } from './useDragSourceConnector.js';\nimport { useDragSourceMonitor } from './useDragSourceMonitor.js';\nimport { useRegisteredDragSource } from './useRegisteredDragSource.js';\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */ export function useDrag(specArg, deps) {\n const spec = useOptionalFactory(specArg, deps);\n invariant(!spec.begin, `useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)`);\n const monitor = useDragSourceMonitor();\n const connector = useDragSourceConnector(spec.options, spec.previewOptions);\n useRegisteredDragSource(spec, monitor, connector);\n return [\n useCollectedProps(spec.collect, monitor, connector),\n useConnectDragSource(connector),\n useConnectDragPreview(connector), \n ];\n}\n\n//# sourceMappingURL=useDrag.js.map","import { useMemo } from 'react';\nexport function useConnectDropTarget(connector) {\n return useMemo(()=>connector.hooks.dropTarget()\n , [\n connector\n ]);\n}\n\n//# sourceMappingURL=connectors.js.map","import { useMemo } from 'react';\nimport { TargetConnector } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nexport function useDropTargetConnector(options) {\n const manager = useDragDropManager();\n const connector = useMemo(()=>new TargetConnector(manager.getBackend())\n , [\n manager\n ]);\n useIsomorphicLayoutEffect(()=>{\n connector.dropTargetOptions = options || null;\n connector.reconnect();\n return ()=>connector.disconnectDropTarget()\n ;\n }, [\n options\n ]);\n return connector;\n}\n\n//# sourceMappingURL=useDropTargetConnector.js.map","import { useMemo } from 'react';\nimport { DropTargetMonitorImpl } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nexport function useDropTargetMonitor() {\n const manager = useDragDropManager();\n return useMemo(()=>new DropTargetMonitorImpl(manager)\n , [\n manager\n ]);\n}\n\n//# sourceMappingURL=useDropTargetMonitor.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useMemo } from 'react';\n/**\n * Internal utility hook to get an array-version of spec.accept.\n * The main utility here is that we aren't creating a new array on every render if a non-array spec.accept is passed in.\n * @param spec\n */ export function useAccept(spec) {\n const { accept } = spec;\n return useMemo(()=>{\n invariant(spec.accept != null, 'accept must be defined');\n return Array.isArray(accept) ? accept : [\n accept\n ];\n }, [\n accept\n ]);\n}\n\n//# sourceMappingURL=useAccept.js.map","export class DropTargetImpl {\n canDrop() {\n const spec = this.spec;\n const monitor = this.monitor;\n return spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true;\n }\n hover() {\n const spec = this.spec;\n const monitor = this.monitor;\n if (spec.hover) {\n spec.hover(monitor.getItem(), monitor);\n }\n }\n drop() {\n const spec = this.spec;\n const monitor = this.monitor;\n if (spec.drop) {\n return spec.drop(monitor.getItem(), monitor);\n }\n return;\n }\n constructor(spec, monitor){\n this.spec = spec;\n this.monitor = monitor;\n }\n}\n\n//# sourceMappingURL=DropTargetImpl.js.map","import { useEffect, useMemo } from 'react';\nimport { DropTargetImpl } from './DropTargetImpl.js';\nexport function useDropTarget(spec, monitor) {\n const dropTarget = useMemo(()=>new DropTargetImpl(spec, monitor)\n , [\n monitor\n ]);\n useEffect(()=>{\n dropTarget.spec = spec;\n }, [\n spec\n ]);\n return dropTarget;\n}\n\n//# sourceMappingURL=useDropTarget.js.map","import { registerTarget } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nimport { useAccept } from './useAccept.js';\nimport { useDropTarget } from './useDropTarget.js';\nexport function useRegisteredDropTarget(spec, monitor, connector) {\n const manager = useDragDropManager();\n const dropTarget = useDropTarget(spec, monitor);\n const accept = useAccept(spec);\n useIsomorphicLayoutEffect(function registerDropTarget() {\n const [handlerId, unregister] = registerTarget(accept, dropTarget, manager);\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }, [\n manager,\n monitor,\n dropTarget,\n connector,\n accept.map((a)=>a.toString()\n ).join('|'), \n ]);\n}\n\n//# sourceMappingURL=useRegisteredDropTarget.js.map","import { useCollectedProps } from '../useCollectedProps.js';\nimport { useOptionalFactory } from '../useOptionalFactory.js';\nimport { useConnectDropTarget } from './connectors.js';\nimport { useDropTargetConnector } from './useDropTargetConnector.js';\nimport { useDropTargetMonitor } from './useDropTargetMonitor.js';\nimport { useRegisteredDropTarget } from './useRegisteredDropTarget.js';\n/**\n * useDropTarget Hook\n * @param spec The drop target specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */ export function useDrop(specArg, deps) {\n const spec = useOptionalFactory(specArg, deps);\n const monitor = useDropTargetMonitor();\n const connector = useDropTargetConnector(spec.options);\n useRegisteredDropTarget(spec, monitor, connector);\n return [\n useCollectedProps(spec.collect, monitor, connector),\n useConnectDropTarget(connector), \n ];\n}\n\n//# sourceMappingURL=useDrop.js.map","import React from \"react\";\nimport { Engine, GraphedFunction } from \"../Engine\";\nimport { WidgetProps } from \"./Components/Control\";\nimport { Prompts } from \"./types\";\n\nconst dummyEngine = new Engine();\n\ntype FlowContextState = {\n engine: Engine;\n graphedFn: GraphedFunction;\n controls?: Record<string, React.ComponentType<WidgetProps<any>>>;\n prompts?: Prompts;\n};\n\nexport const FlowContext = React.createContext<FlowContextState>({\n graphedFn: {} as GraphedFunction,\n engine: dummyEngine,\n});\n\nexport const useEngine = () => {\n return React.useContext(FlowContext).engine;\n};\n\nconst empty = {};\nexport const useControls = () => {\n return React.useContext(FlowContext).controls || empty;\n};\n\nexport const useGraphedFunction = () => {\n return React.useContext(FlowContext).graphedFn;\n};\n\nexport const usePrompts = () => {\n let prompts = React.useContext(FlowContext).prompts;\n return {\n confirm,\n prompt,\n alert,\n ...prompts,\n };\n};\n","import React from \"react\";\nimport rcin from \"rc-input-number\";\nimport { NormalizedVarDef } from \"../../Engine\";\nimport { useControls } from \"../Context\";\n\nimport styles from \"./NodeComponents.module.css\";\n\n// normalizing import\nconst InputNumber = (rcin as any).default ?? rcin;\n\nconst InputString = React.memo(\n ({\n value,\n onChange,\n }: {\n value: string;\n onChange?: (value: string) => void;\n }) => {\n return (\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n />\n );\n }\n);\n\nexport interface WidgetProps<T> {\n value: T;\n vardef: NormalizedVarDef;\n onChange?: (value: T) => void;\n}\n\ninterface ControlProps {\n value: any;\n vardef: NormalizedVarDef;\n onChange?: (value: any) => void;\n}\nexport function Control({ value, vardef, onChange }: ControlProps) {\n const customControls = useControls();\n if (vardef.type in customControls) {\n const ControlComponent = customControls[\n vardef.type\n ] as React.ComponentType<WidgetProps<any>>;\n return (\n <ControlComponent\n value={value}\n vardef={vardef}\n onChange={onChange}\n />\n );\n }\n if (vardef.options) {\n return (\n <select\n value={value || \"\"}\n onChange={(e) => onChange?.(e.target.value)}\n >\n {vardef.options.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n );\n }\n switch (vardef.type) {\n case \"string\":\n return <InputString value={value ?? \"\"} onChange={onChange} />;\n case \"number\":\n return (\n <InputNumber\n value={Number(value) || 0}\n onChange={onChange}\n step={vardef.step}\n min={vardef.min}\n max={vardef.max}\n inputMode=\"numeric\"\n />\n );\n case \"boolean\":\n return (\n <input\n type=\"checkbox\"\n checked={Boolean(value)}\n onChange={(e) => onChange?.(e.target.checked)}\n />\n );\n default:\n return (\n <span className={styles.PortLabel}>\n {String(value)} ({vardef.type})\n </span>\n );\n }\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { Handle, Position } from \"@xyflow/react\";\n\nimport { normalizeVarDef, VarDef } from \"../../Engine\";\nimport { isReference } from \"../../Engine/util\";\nimport { Control } from \"./Control\";\nimport { FunctionNode } from \"../types\";\n\nimport styles from \"./NodeComponents.module.css\";\n\ninterface InputProps {\n name: string;\n varDef: VarDef;\n id: string;\n data: FunctionNode[\"data\"];\n onClick?: (e: React.MouseEvent) => void;\n}\nexport const Input = ({ name, varDef, id, data, onClick }: InputProps) => {\n const normalized = normalizeVarDef(varDef);\n const value = data.inputs?.[name];\n const isRef = isReference(value);\n\n const handleInputChange = (param: string) => (value: any) => {\n data.onChange({\n inputs: {\n ...data.inputs,\n [param]: value,\n },\n });\n };\n\n return (\n <Handle\n type=\"target\"\n position={Position.Left}\n id={`${id}-${name}`}\n className={classNames(\n styles.Input,\n styles.Port,\n styles[`type-${normalized.type}`]\n )}\n style={\n {\n \"--type-color\": `var(--color-${normalized.type})`,\n } as any\n }\n onClick={onClick}\n >\n <span className={styles.PortLabel}>{normalized.label || name}</span>\n {!isRef && (\n <Control\n vardef={normalized}\n value={value}\n onChange={handleInputChange(name)}\n />\n )}\n </Handle>\n );\n};\n","import React from \"react\";\nimport classNames from \"classnames\";\n\nimport { normalizeVarDef, VarDef } from \"../../Engine\";\nimport { isReference } from \"../../Engine/util\";\nimport { Control } from \"./Control\";\nimport { FunctionNode } from \"../types\";\n\nimport styles from \"./NodeComponents.module.css\";\n\ninterface ParamProps {\n id: string;\n name: string;\n varDef: VarDef;\n data: FunctionNode[\"data\"];\n onClick?: (e: React.MouseEvent) => void;\n}\nexport const Param = ({ id, name, varDef, data, onClick }: ParamProps) => {\n const normalized = normalizeVarDef(varDef);\n const value = data.params?.[name];\n const isRef = isReference(value);\n\n const handleParamChange = (param: string) => (value: any) => {\n data.onChange({\n params: {\n ...data.params,\n [param]: value,\n },\n });\n };\n\n return (\n <div\n className={classNames(\n styles.Param,\n styles.Port,\n styles[`type-${normalized.type}`]\n )}\n style={\n {\n \"--type-color\": `var(--color-${normalized.type})`,\n } as any\n }\n onClick={onClick}\n >\n <span className={styles.PortLabel}>{normalized.label || name}</span>\n {!isRef && (\n <Control\n vardef={normalized}\n value={value}\n onChange={handleParamChange(name)}\n />\n )}\n </div>\n );\n};\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { Handle, Position } from \"@xyflow/react\";\n\nimport { normalizeVarDef, VarDef } from \"../../Engine\";\n\nimport styles from \"./NodeComponents.module.css\";\n\ninterface OutputProps {\n name: string;\n varDef: VarDef;\n id: string;\n onClick?: (e: React.MouseEvent) => void;\n focus?: boolean;\n}\nexport const Output = ({ name, varDef, id, onClick, focus }: OutputProps) => {\n const normalized = normalizeVarDef(varDef);\n\n return (\n <Handle\n type=\"source\"\n position={Position.Right}\n id={`${id}-${name}`}\n className={classNames(\n styles.Output,\n styles.Port,\n styles[`type-${normalized.type}`]\n )}\n style={\n {\n \"--type-color\": `var(--color-${normalized.type})`,\n } as any\n }\n onClick={onClick}\n >\n <span className={styles.PortLabel}>\n {focus && \"👁 \"}\n {normalized.label || name}\n </span>\n </Handle>\n );\n};\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { useLongPress } from \"use-long-press\";\n\nimport { useEngine } from \"../Context\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\nimport { useReactFlow, useStore, useStoreApi } from \"@xyflow/react\";\n\ninterface NodeContainerProps {\n id?: string;\n label: string;\n className?: string;\n selected?: boolean;\n children?: React.ReactNode;\n noDelete?: boolean;\n}\nexport function NodeContainer({\n id,\n label,\n className,\n selected,\n children,\n noDelete,\n}: NodeContainerProps) {\n const engine = useEngine();\n const [active, setActive] = React.useState(false);\n const [deleteMode, setDeleteMode] = React.useState(false);\n const instance = useReactFlow();\n\n React.useEffect(() => {\n if (!selected) {\n setDeleteMode(false);\n }\n }, [selected]);\n\n React.useEffect(() => {\n if (!id) return;\n let timer;\n let removeOnCall = engine.subscribe(\"functionCall\", (event) => {\n if (event.name === id) {\n setActive(true);\n }\n });\n let removeOnResult = engine.subscribe(\"functionResult\", (event) => {\n if (event.name === id) {\n clearTimeout(timer);\n timer = setTimeout(\n () => setActive(false),\n Math.max(0, 1000 - (event.duration || 0))\n );\n }\n });\n return () => {\n removeOnCall();\n removeOnResult();\n };\n }, [id]);\n\n const handlers = useLongPress(() => {\n if (!noDelete) {\n setDeleteMode(true);\n }\n });\n\n const handleDelete = () => {\n instance.deleteElements({ nodes: [{ id: id! }] });\n };\n\n return (\n <div\n className={classNames(className, styles.NodeContainer, {\n [styles.selected]: selected,\n [styles.active]: active,\n })}\n >\n <div className={styles.Label} {...handlers()}>\n <span></span>\n {label}\n <span>\n {deleteMode && (\n <button\n className={styles.DeleteButton}\n onClick={handleDelete}\n >\n ✕\n </button>\n )}\n </span>\n </div>\n {children}\n </div>\n );\n}\n","import React from \"react\";\nimport { Handle, NodeProps, Position } from \"@xyflow/react\";\nimport classNames from \"classnames\";\n\nimport { NodeContainer } from \"../Components/NodeContainer\";\nimport { FunctionNode } from \"../types\";\nimport { useEngine } from \"../Context\";\nimport { Tree } from \"../../DataTree\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\n\ninterface TreeTableProps {\n value: Tree<any> | null;\n}\nfunction TreeTable({ value }: TreeTableProps) {\n return (\n <div className={styles.Table}>\n <table>\n {Object.entries(value || {}).map(([key, val]) => (\n <React.Fragment key={key}>\n <tbody>\n <tr>\n <th colSpan={2}>{`{${key}}`}</th>\n </tr>\n {val.map((item, index) => (\n <tr key={`${key}-${index}`}>\n <td>{index}</td>\n <td title={JSON.stringify(item, null, 2)}>\n {item?.toString?.()}\n </td>\n </tr>\n ))}\n </tbody>\n </React.Fragment>\n ))}\n </table>\n </div>\n );\n}\n\n// either has children or items\ntype TreeBranch<T> = {\n name: string;\n children: TreeBranch<T>[];\n items?: T[];\n};\n\nfunction createTreeStructure<T = any>(tree: Tree<T>) {\n const keys = Object.keys(tree);\n let structure: TreeBranch<T> = { name: \"root\", children: [] };\n\n keys.forEach((key) => {\n let path = key.split(\";\");\n let parent: TreeBranch<T> = structure;\n\n for (let i = 0; i < path.length; i++) {\n let part = parseInt(path[i], 10);\n if (!parent.children[part]) {\n parent.children[part] = {\n name: path.slice(0, i + 1).join(\";\"),\n children: [],\n };\n }\n parent = parent.children[part];\n }\n parent.items = tree[key];\n });\n\n return structure;\n}\n\ninterface TreeBranchViewProps {\n branch: TreeBranch<any>;\n}\nfunction TreeBranchView({ branch }: TreeBranchViewProps) {\n let [expanded, setExpanded] = React.useState(true);\n let isLeaf = !!branch.items;\n let subCnt = branch.children.length || branch.items?.length || 0;\n let maxCnt = 10;\n return (\n <div>\n <div\n className={classNames(\n { [styles.expanded]: expanded },\n styles.GroupHead\n )}\n onClick={() => setExpanded(!expanded)}\n >\n <div className={styles.GroupName}>group {branch.name}</div>\n <div className={styles.GroupCnt}>({subCnt})</div>\n </div>\n {expanded && (\n <div className={styles.GroupChildren}>\n {!isLeaf &&\n branch.children.map((subgroup, index) => {\n // sub branch\n return (\n <TreeBranchView key={index} branch={subgroup} />\n );\n })}\n {isLeaf && (\n <>\n {branch.items\n ?.slice(0, maxCnt)\n .map((item, index) => {\n // items\n let label = item?.toString?.();\n if (label === \"[object Object]\") {\n label = \"{...}\";\n }\n return (\n <div key={index}>\n <div\n className={styles.GroupLeaf}\n title={JSON.stringify(\n item,\n null,\n 2\n )}\n >\n {label}\n </div>\n </div>\n );\n })}\n {branch.items && branch.items.length > maxCnt && (\n <div className={styles.GroupMore}>\n ... {branch.items.length - maxCnt} more\n </div>\n )}\n </>\n )}\n </div>\n )}\n </div>\n );\n}\n\ninterface TreeViewProps {\n value: Tree<any> | null;\n}\nexport function TreeView({ value }: TreeViewProps) {\n let structure = createTreeStructure(value || {});\n return (\n <div>\n {structure.children.map((branch, index) => (\n <TreeBranchView key={index} branch={branch} />\n ))}\n </div>\n );\n}\n\nexport const Log = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n const engine = useEngine();\n const [value, setValue] = React.useState<Tree<any> | null>(null);\n\n React.useEffect(() => {\n return engine.subscribe(\"functionResult\", (event) => {\n if (event.name === id) {\n setValue(event.context.scope[id]?.data || null);\n }\n });\n }, []);\n\n return (\n <NodeContainer\n id={id}\n label={data.name}\n selected={selected}\n className={styles.Log}\n >\n {/* <TreeTable value={value} /> */}\n <TreeView value={value} />\n <Handle\n type=\"target\"\n position={Position.Left}\n id={`${id}-data`}\n />\n <Handle\n type=\"source\"\n position={Position.Right}\n id={`${id}-data`}\n />\n </NodeContainer>\n );\n }\n);\nLog.displayName = \"LogNode\";\n","import React from \"react\";\nimport classNames from \"classnames\";\n\nimport { FunctionNode } from \"../types\";\nimport { Input } from \"../Components/Input\";\nimport { Param } from \"../Components/Param\";\nimport { Output } from \"../Components/Output\";\nimport { NodeContainer } from \"../Components/NodeContainer\";\nimport { RecOfTrees, VarDef } from \"../../Engine\";\nimport { useEngine } from \"../Context\";\nimport { TreeView } from \"../Nodes/Log\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\n\ninterface GenericNodeProps {\n id: string;\n data: FunctionNode[\"data\"];\n selected: boolean;\n inputs?: Record<string, VarDef>;\n outputs?: Record<string, VarDef>;\n params?: Record<string, VarDef>;\n children?: React.ReactNode;\n}\nexport function GenericNode({\n id,\n data,\n selected,\n inputs,\n outputs,\n params,\n children,\n}: GenericNodeProps) {\n const inputEntries = Object.entries(inputs || data.inputDefs || {});\n const outputEntries = Object.entries(outputs || data.outputDefs || {});\n const paramEntries = Object.entries(params || data.paramDefs || {});\n\n const engine = useEngine();\n const [result, setResult] = React.useState<RecOfTrees>({});\n const [duration, setDuration] = React.useState<number | null>(null);\n const [focus, setFocus] = React.useState<string | null>(\n outputEntries[0]?.[0] || null\n );\n const [showPreview, setShowPreview] = React.useState(false);\n\n const previewValue = focus ? result[focus] : Object.values(result)[0];\n\n React.useEffect(() => {\n return engine.subscribe(\"functionResult\", (event) => {\n if (event.name === id) {\n setResult(event.result || {});\n setDuration(event.duration ?? null);\n }\n });\n }, []);\n\n return (\n <NodeContainer label={data.label} selected={selected} id={id}>\n <div className={styles.Description}>{data.description}</div>\n {children}\n <div className={styles.Ports}>\n {outputEntries.map(([name, varDef]) => (\n <Output\n key={name}\n name={name}\n varDef={varDef}\n id={id}\n onClick={() => setFocus(name)}\n focus={showPreview && focus === name}\n />\n ))}\n {inputEntries.map(([name, varDef]) => (\n <Input\n key={name}\n name={name}\n varDef={varDef}\n id={id}\n data={data}\n />\n ))}\n {paramEntries.map(([name, varDef]) => (\n <Param\n key={name}\n name={name}\n varDef={varDef}\n id={id}\n data={data}\n />\n ))}\n </div>\n <div\n className={classNames(styles.PreviewHead, {\n [styles.expanded]: showPreview,\n })}\n onClick={() => setShowPreview(!showPreview)}\n >\n Preview\n </div>\n {showPreview && (\n <div className={styles.Preview}>\n <TreeView value={previewValue} />\n {duration !== null && (\n <div className={styles.Duration}>\n {duration.toFixed(2)} ms\n </div>\n )}\n </div>\n )}\n </NodeContainer>\n );\n}\n","import React from \"react\";\nimport { NodeProps } from \"@xyflow/react\";\nimport { create, all } from \"mathjs\";\nimport katex from \"katex\";\n\nimport { FunctionNode } from \"../types\";\nimport { GenericNode } from \"../Components/GenericNode\";\nimport { getUnboundSymbols } from \"../../Primitives/Math/calc\";\n\nimport \"../style/katex.min.css\";\n\nlet math = create(all, {});\n\ntype MathProps = { expr: string; displayMode?: boolean };\n\nexport function MathView({ expr, displayMode = false }: MathProps) {\n let latex = \"\";\n try {\n latex = math.parse(expr).toTex({ parenthesis: \"auto\" });\n } catch (e) {\n latex = String(expr); // fallback on parse error\n }\n const html = katex.renderToString(latex, {\n throwOnError: false,\n displayMode, // true = block, false = inline\n });\n return <span dangerouslySetInnerHTML={{ __html: html }} />;\n}\n\nexport const Calc = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n let expression = (data.params?.expression || \"\").toString();\n\n // add free variables to inputs\n const inputs = { ...(data.inputDefs || {}) };\n const symbols = getUnboundSymbols(expression as string);\n symbols.forEach((symbol) => {\n if (!inputs[symbol]) {\n inputs[symbol] = {\n type: \"number\",\n };\n }\n });\n\n return (\n <GenericNode\n id={id}\n data={data}\n selected={selected}\n inputs={inputs}\n >\n <MathView expr={expression} displayMode />\n </GenericNode>\n );\n }\n);\nCalc.displayName = \"CalcNode\";\n","import React from \"react\";\nimport { NodeProps } from \"@xyflow/react\";\n\nimport { FunctionNode } from \"../types\";\nimport { GenericNode } from \"../Components/GenericNode\";\n\nexport const Default = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n return <GenericNode id={id} data={data} selected={selected} />;\n }\n);\nDefault.displayName = \"DefaultNode\";\n","import React from \"react\";\nimport styles from \"./NodeComponents.module.css\";\n\ninterface MenuProps {\n handle: React.ReactNode;\n children?: React.ReactNode;\n}\nexport function Menu({ handle, children }: MenuProps) {\n const [open, setOpen] = React.useState(false);\n const handleOpen = () => {\n setOpen(!open);\n };\n const handleClose = () => {\n setOpen(false);\n };\n return (\n <div className={styles.Menu}>\n <div onClick={handleOpen}>{handle}</div>\n {open && (\n <div className={styles.MenuCanvas} onClick={handleClose}>\n {children}\n </div>\n )}\n </div>\n );\n}\n\ninterface MenuItemProps extends React.HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n}\nexport function MenuItem({ children, ...props }: MenuItemProps) {\n return (\n <div className={styles.MenuItem} {...props}>\n {children}\n </div>\n );\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { Handle, NodeProps, Position } from \"@xyflow/react\";\n\nimport { NodeContainer } from \"../Components/NodeContainer\";\nimport { FunctionNode } from \"../types\";\nimport {\n GraphedFunction,\n NormalizedVarDef,\n normalizeVarDef,\n uid,\n} from \"../../Engine\";\nimport { useGraphedFunction, usePrompts } from \"../Context\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\nimport compStyles from \"../Components/NodeComponents.module.css\";\nimport { Menu, MenuItem } from \"../Components/Menu\";\n\n/**\n * todo: get input data from graphed function\n */\n\nexport const InputNode = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n let fn = useGraphedFunction();\n let { prompt } = usePrompts();\n\n let outputs: Record<string, NormalizedVarDef> = Object.fromEntries(\n Object.keys(fn.inputs || {}).map((name) => [\n name,\n normalizeVarDef(fn.inputs![name]),\n ])\n );\n\n const onRename = async (id: string, oldLabel: string) => {\n let label = await prompt(\"Enter new name\", oldLabel);\n if (label !== null && label !== oldLabel) {\n data.onIOChange?.((fn: GraphedFunction) => {\n const inputs = { ...fn.inputs };\n const n = normalizeVarDef(inputs[id]);\n inputs[id] = { ...n, label };\n return { inputs };\n });\n }\n };\n\n const onAdd = async () => {\n let label = await prompt(\"Enter new name\");\n if (label !== null) {\n data.onIOChange?.((fn: GraphedFunction) => {\n const inputs = { ...fn.inputs };\n inputs[uid()] = { type: \"any\", label };\n return { inputs };\n });\n }\n };\n\n const onDelete = (name: string) => {\n data.onIOChange?.((fn: GraphedFunction) => {\n const inputs = { ...fn.inputs };\n delete inputs[name];\n return { inputs };\n });\n };\n\n const onDefault = async (id: string) => {\n let value: any = await prompt(\"Enter default value\");\n if (value !== null && fn.inputs?.[id]) {\n let n = normalizeVarDef(fn.inputs[id]);\n if (n.type === \"number\") {\n value = Number(value);\n } else if (n.type === \"boolean\") {\n value = value.toLowerCase() === \"true\";\n }\n data.onIOChange?.((fn: GraphedFunction) => {\n const inputs = { ...fn.inputs };\n inputs[id] = { ...n, default: value };\n return { inputs };\n });\n }\n };\n\n const onType = async (id: string) => {\n let type: any = await prompt(\"Enter type\");\n if (type !== null && fn.inputs?.[id]) {\n let n = normalizeVarDef(fn.inputs[id]);\n data.onIOChange?.((fn: GraphedFunction) => {\n const inputs = { ...fn.inputs };\n inputs[id] = { ...n, type };\n return { inputs };\n });\n }\n };\n\n return (\n <NodeContainer\n label={data.label}\n selected={selected}\n id={id}\n noDelete\n >\n <div className={styles.Description}>{data.description}</div>\n <div className={styles.Ports}>\n {Object.entries(outputs || {}).map(([name, normalized]) => {\n return (\n <Handle\n key={name}\n type=\"source\"\n position={Position.Right}\n id={`${id}-${name}`}\n className={classNames(\n compStyles.Output,\n compStyles.Port,\n compStyles[`type-${normalized.type}`]\n )}\n style={\n {\n \"--type-color\": `var(--color-${normalized.type})`,\n } as any\n }\n >\n <Menu handle={<button>...</button>}>\n <MenuItem\n onClick={() =>\n onRename(\n name,\n normalized.label || name\n )\n }\n >\n Rename\n </MenuItem>\n <MenuItem onClick={() => onDelete(name)}>\n Delete\n </MenuItem>\n <MenuItem onClick={() => onDefault(name)}>\n Set Default\n </MenuItem>\n <MenuItem onClick={() => onType(name)}>\n Set Type\n </MenuItem>\n </Menu>\n <span style={{ flex: 1 }}></span>\n <span className={compStyles.PortLabel}>\n {normalized.label || name}\n </span>\n </Handle>\n );\n })}\n <div className={styles.Body}>\n <button onClick={() => onAdd()}>+</button>\n </div>\n </div>\n </NodeContainer>\n );\n }\n);\nInputNode.displayName = \"InputNode\";\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { NodeProps } from \"@xyflow/react\";\n\nimport { NodeContainer } from \"../Components/NodeContainer\";\nimport { FunctionNode } from \"../types\";\nimport { Output } from \"../Components/Output\";\nimport { Input } from \"../Components/Input\";\nimport { RecOfTrees } from \"../../Engine\";\nimport { useEngine } from \"../Context\";\nimport { TreeView } from \"./Log\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\n\nfunction uid() {\n return Math.random().toString(36).substring(2, 15);\n}\n\nexport const Merge = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n const outputEntries = Object.entries(data.outputDefs || {});\n const focus = outputEntries[0]?.[0];\n const [showPreview, setShowPreview] = React.useState(false);\n const engine = useEngine();\n const [result, setResult] = React.useState<RecOfTrees>({});\n const [duration, setDuration] = React.useState<number | null>(null);\n const previewValue = focus ? result[focus] : Object.values(result)[0];\n\n React.useEffect(() => {\n return engine.subscribe(\"functionResult\", (event) => {\n if (event.name === id) {\n setResult(event.result || {});\n setDuration(event.duration ?? null);\n }\n });\n }, []);\n\n let inputs = Object.fromEntries(\n Object.keys(data.inputs || {}).map((name, i) => [\n name,\n { type: \"any\", label: `D${i + 1}` },\n ])\n );\n let inputCount = Object.keys(inputs).length;\n inputs[uid()] = { type: \"any\", label: `D${inputCount + 1}` };\n let outputs = { ...(data.outputDefs || {}) };\n\n return (\n <NodeContainer label={data.label} selected={selected} id={id}>\n <div className={styles.Description}>{data.description}</div>\n <div className={styles.Ports}>\n {Object.entries(outputs || {}).map(([name, varDef]) => (\n <Output\n key={name}\n name={name}\n varDef={varDef}\n id={id}\n />\n ))}\n {Object.entries(inputs || {}).map(([name, varDef]) => (\n <Input\n key={name}\n name={name}\n varDef={varDef}\n id={id}\n data={data}\n />\n ))}\n </div>\n <div\n className={classNames(styles.PreviewHead, {\n [styles.expanded]: showPreview,\n })}\n onClick={() => setShowPreview(!showPreview)}\n >\n Preview\n </div>\n {showPreview && (\n <div className={styles.Preview}>\n <TreeView value={previewValue} />\n {duration !== null && (\n <div className={styles.Duration}>\n {duration.toFixed(2)} ms\n </div>\n )}\n </div>\n )}\n </NodeContainer>\n );\n }\n);\nMerge.displayName = \"MergeNode\";\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport { Handle, NodeProps, Position } from \"@xyflow/react\";\n\nimport { NodeContainer } from \"../Components/NodeContainer\";\nimport { FunctionNode } from \"../types\";\nimport {\n GraphedFunction,\n isReference,\n NormalizedVarDef,\n normalizeVarDef,\n parseReference,\n} from \"../../Engine\";\nimport { useEngine, useGraphedFunction, usePrompts } from \"../Context\";\n\nimport styles from \"../Nodes/Nodes.module.css\";\nimport compStyles from \"../Components/NodeComponents.module.css\";\nimport { Menu, MenuItem } from \"../Components/Menu\";\n\n/**\n * todo: create a factory for output component\n * - allow to pass prompt handler (async)\n * - allow to pass custom UI for renaming/adding/deleting\n *\n * - create input node\n */\n\nexport const OutputNode = React.memo(\n ({ id, data, selected }: NodeProps<FunctionNode>) => {\n let engine = useEngine();\n let fn = useGraphedFunction();\n let { prompt } = usePrompts();\n\n let inputs: Record<string, NormalizedVarDef> = Object.fromEntries(\n Object.entries(data.inputs || {}).map(([name, ref], i) => {\n let type = \"any\";\n if (isReference(ref)) {\n const [fnId, outputName] = parseReference(ref).split(\".\");\n const fnName = fn.body[fnId]?.name;\n if (fnName) {\n let calledFn = engine.getFunction(fnName);\n const outputDef = calledFn?.outputs?.[outputName];\n if (outputDef) {\n let n = normalizeVarDef(outputDef);\n if (n?.type) {\n type = n.type;\n }\n }\n }\n }\n return [name, { type, label: name }];\n })\n );\n\n const onRename = async (oldName: string) => {\n let newName = await prompt(\"Enter new name\", oldName);\n if (newName !== null && newName !== oldName) {\n data.onIOChange?.((fn: GraphedFunction) => {\n const outputs = { ...fn.outputs };\n outputs[newName] = outputs[oldName];\n delete outputs[oldName];\n return { outputs };\n });\n }\n };\n\n const onAdd = async () => {\n let newName = await prompt(\"Enter new name\");\n if (newName !== null) {\n data.onIOChange?.((fn: GraphedFunction) => {\n const outputs = { ...fn.outputs };\n outputs[newName] = \"\";\n return { outputs };\n });\n }\n };\n\n const onDelete = (name: string) => {\n data.onIOChange?.((fn: GraphedFunction) => {\n const outputs = { ...fn.outputs };\n delete outputs[name];\n return { outputs };\n });\n };\n\n return (\n <NodeContainer\n label={data.label}\n selected={selected}\n id={id}\n noDelete\n >\n <div className={styles.Description}>{data.description}</div>\n <div className={styles.Ports}>\n {Object.entries(inputs || {}).map(([name, varDef]) => {\n return (\n <Handle\n key={name}\n type=\"target\"\n position={Position.Left}\n id={`${id}-${name}`}\n className={classNames(\n compStyles.Input,\n compStyles.Port,\n compStyles[`type-${varDef.type}`]\n )}\n style={\n {\n \"--type-color\": `var(--color-${varDef.type})`,\n } as any\n }\n >\n <span className={compStyles.PortLabel}>\n {name}\n </span>\n <span style={{ flex: 1 }}></span>\n <Menu handle={<button>...</button>}>\n <MenuItem onClick={() => onRename(name)}>\n Rename\n </MenuItem>\n <MenuItem onClick={() => onDelete(name)}>\n Delete\n </MenuItem>\n </Menu>\n </Handle>\n );\n })}\n </div>\n <div className={styles.Body}>\n <button onClick={() => onAdd()}>+</button>\n </div>\n </NodeContainer>\n );\n }\n);\nOutputNode.displayName = \"OutputNode\";\n","import { Calc } from \"./Calc\";\nimport { Default } from \"./Default\";\nimport { InputNode } from \"./Input\";\nimport { Log } from \"./Log\";\nimport { Merge } from \"./Merge\";\nimport { OutputNode } from \"./Output\";\n\nexport const nodeTypes = {\n Default,\n Calc,\n Log,\n Merge,\n Input: InputNode,\n Output: OutputNode,\n};\n","import { create } from \"zustand\";\nimport { persist } from \"zustand/middleware\";\n\ntype Updater<T> = (oldValue: T) => T;\ninterface VariableStore {\n data: Record<string, any>;\n getVar: (scope: string, name: string, persist: boolean) => any;\n setVar: (scope: string, name: string, value: any, persist: boolean) => void;\n}\nlet variableStore = create<VariableStore>((set, get, api) =>\n persist<VariableStore>(\n (pset, pget) => ({\n data: {},\n getVar: (scope: string, name: string, persist: boolean) => {\n if (persist) {\n return pget().data[`${scope}|${name}`];\n } else {\n return get().data[`${scope}|${name}`];\n }\n },\n setVar: (\n scope: string,\n name: string,\n value: any,\n persist: boolean\n ) => {\n let key = `${scope}|${name}`;\n if (persist) {\n let oldData = pget().data;\n let newValue =\n typeof value === \"function\"\n ? value(oldData[key])\n : value;\n let data = { ...oldData, [key]: newValue };\n pset({ data });\n } else {\n let oldData = get().data;\n let newValue =\n typeof value === \"function\"\n ? value(oldData[key])\n : value;\n let data = { ...oldData, [key]: newValue };\n set({ data });\n }\n },\n }),\n {\n name: \"variable-storage\", // unique name\n // getStorage: () => sessionStorage, // (optional) by default the 'localStorage' is used\n }\n )(set, get, api)\n);\n\n/**\n * scope restricts the variable scope, for example to a view id\n * @param scope\n * @param name\n */\nexport const useVariable = <T = any>(\n scope: string,\n name: string,\n initial: T,\n persist = true\n): [T, (t: T | Updater<T>) => void] => {\n let value = variableStore(({ getVar }) => getVar(scope, name, persist));\n if (typeof value === \"undefined\") value = initial;\n let setVar = variableStore(({ setVar }) => setVar);\n let setValue = (value: any) => setVar(scope, name, value, persist);\n return [value, setValue];\n};\n","import React from \"react\";\nimport { GraphedFunction } from \"../Engine\";\nimport { FunctionNode } from \"../Flow\";\nimport { useVariable } from \"./useVariable\";\n\ntype Point = { x: number; y: number };\n\nexport function usePositions(fn: GraphedFunction) {\n return useVariable<Record<string, Point>>(\n \"rules\",\n `${fn.name}.positions`,\n {}\n );\n}\n\nexport function useUpdatePositions(fn: GraphedFunction) {\n let [positions, setPositions] = usePositions(fn);\n return React.useCallback(\n (id: string, position: Point) => {\n positions[id] = position;\n setPositions(positions);\n },\n [positions, setPositions]\n );\n}\n","import React from \"react\";\nimport { Edge } from \"@xyflow/react\";\n\nimport {\n Engine,\n FunctionCall,\n getReferences,\n GraphedFunction,\n Ref,\n VarRef,\n} from \"../Engine\";\nimport { FunctionNode } from \"../Flow\";\nimport { create } from \"zustand\";\n\nexport type PositionData = Record<string, { x: number; y: number }>;\n\nexport interface FlowOptions {\n dragHandle?: string;\n positions?: PositionData;\n onDataChange?: (\n id: string\n ) => (newData: Partial<FunctionNode[\"data\"]>) => void;\n onIOChange?: (\n callback: (fn: GraphedFunction) => Partial<GraphedFunction>\n ) => void;\n}\n\n// helpers\nfunction updateNodeArguments(\n node: FunctionNode,\n inputs?: VarRef,\n params?: VarRef\n): FunctionNode {\n return {\n ...node,\n data: {\n ...node.data,\n inputs,\n params,\n },\n };\n}\n\nfunction createNode(\n engine: Engine,\n id: string,\n fncall: FunctionCall,\n options: FlowOptions\n): FunctionNode {\n const calledFn = engine.getFunction(fncall.name);\n\n // create a node for each function call\n return {\n id,\n data: {\n name: fncall.name,\n label: fncall.label || calledFn?.label || fncall.name,\n description: calledFn?.description,\n inputs: fncall.inputs,\n params: fncall.params,\n inputDefs: calledFn?.inputs || {},\n paramDefs: calledFn?.params || {},\n outputDefs: calledFn?.outputs || {},\n onChange: options.onDataChange?.(id) || (() => {}),\n onIOChange: options.onIOChange || ((fn) => fn),\n },\n position: options.positions?.[id] || { x: 0, y: 0 },\n dragHandle: options.dragHandle,\n type: calledFn?.nodeType || \"Default\",\n };\n}\n\nfunction createEdge(nodeId: string, ref: Ref): Edge {\n return {\n id: `${ref.path}-${nodeId}.${ref.name}`,\n source: ref.refNode,\n target: nodeId,\n sourceHandle: `${ref.refNode}-${ref.refField}`,\n targetHandle: `${nodeId}-${ref.name}`,\n };\n}\n\ninterface FlowState {\n engine: Engine | null;\n fn: GraphedFunction | null;\n options: FlowOptions;\n nodes: Record<string, FunctionNode>;\n edges: Edge[];\n setNodes: (updater: (nodes: FunctionNode[]) => FunctionNode[]) => void;\n setEdges: (updater: (edges: Edge[]) => Edge[]) => void;\n setFn: (fn: GraphedFunction, options: FlowOptions) => void;\n init: (fn: GraphedFunction, engine: Engine, options: FlowOptions) => void;\n}\n\n/**\n * flow state stores nodes and edges for the flow graph these can be updated when the function changes\n * using setFn\n */\nconst useFlowState = create<FlowState>((set, get) => ({\n engine: null,\n fn: null,\n options: {},\n nodes: {},\n edges: [],\n setNodes: (updater: (nodes: FunctionNode[]) => FunctionNode[]) => {\n set((state) => {\n let currentNodes = Object.values(state.nodes);\n let newNodes = updater(currentNodes);\n let nodes = Object.fromEntries(newNodes.map((n) => [n.id, n]));\n return { nodes };\n });\n },\n setEdges: (updater: (edges: Edge[]) => Edge[]) => {\n set((state) => ({ edges: updater(state.edges) }));\n },\n setFn: (fn: GraphedFunction, options: FlowOptions) => {\n // console.log(\"setFn\", fn);\n let { fn: oldFn, nodes, edges, engine } = get();\n // update the graph by shallow comparison\n\n if (!engine) {\n throw new Error(\"Engine not set\");\n }\n\n let oldKeys = Object.keys(oldFn?.body || {});\n let newKeys = Object.keys(fn.body || {});\n\n // remove all the nodes that were removed\n Object.keys(nodes).forEach((key) => {\n if (!newKeys.includes(key)) {\n delete nodes[key];\n }\n });\n // remove all the edges that were removed\n edges = edges?.filter((edge) => {\n return (\n (newKeys.includes(edge.source) || edge.source === \"inputs\") &&\n newKeys.includes(edge.target)\n );\n });\n\n // make sure there is an output node if outputs are defined\n if (fn.outputs && !nodes[\"output\"]) {\n const key = \"output\";\n const fncall: FunctionCall = {\n name: \"output\",\n inputs: fn.outputs || {},\n params: {},\n };\n const newNode = createNode(engine, key, fncall, options);\n nodes[key] = newNode;\n\n // add edges\n const refs = getReferences(fncall.inputs || {});\n refs.forEach((ref) => {\n edges.push(createEdge(key, ref));\n });\n }\n\n // make sure there is an input node if inputs are defined\n if (fn.inputs && !nodes[\"inputs\"]) {\n const key = \"inputs\";\n const fncall: FunctionCall = {\n name: \"inputs\",\n inputs: {},\n params: {},\n };\n const newNode = createNode(engine, key, fncall, options);\n nodes[key] = newNode;\n }\n\n // create the new nodes that were added\n let addedKeys = newKeys.filter((key) => !oldKeys.includes(key));\n addedKeys.forEach((key, index) => {\n let fncall = fn.body?.[key];\n\n // add the node\n let newNode = createNode(engine, key, fncall, options);\n nodes[newNode.id] = newNode;\n\n // add edges\n const refs = getReferences(fncall.inputs || {});\n refs.forEach((ref) => {\n edges.push(createEdge(key, ref));\n });\n });\n\n // update the changed nodes\n let changedKeys = newKeys.filter((key) => {\n // shallow comparison\n return fn.body?.[key] !== oldFn?.body?.[key];\n });\n // console.log(\"changed keys\", changedKeys);\n changedKeys.forEach((key) => {\n // update the nodes that were changed\n let fncall = fn.body?.[key];\n let node = nodes[key];\n nodes[key] = updateNodeArguments(\n node,\n fncall.inputs,\n fncall.params\n );\n\n // update incoming edges\n const refs = getReferences(fncall.inputs || {});\n // remove all incoming edges\n edges = edges?.filter((e) => e.target !== key);\n // add the edge\n refs.forEach((ref) => {\n edges.push(createEdge(key, ref));\n });\n });\n\n // console.log(\"final graph\", nodes, edges);\n\n // update the function, nodes and edges\n set({ fn, nodes, edges });\n },\n init: (fn: GraphedFunction, engine: Engine, options: FlowOptions) => {\n // console.log(\"initing\");\n set({ engine, options });\n get().setFn(fn, options);\n },\n}));\n\n/**\n * creates a flow state and provides handlers to update nodes and edges\n */\nexport function useFlow(\n fn: GraphedFunction,\n engine: Engine,\n options: FlowOptions\n) {\n let state = useFlowState();\n\n React.useEffect(() => {\n state.init(fn, engine, options);\n }, [engine]);\n\n React.useEffect(() => {\n state.setFn(fn, options);\n }, [fn, options]);\n\n return React.useMemo(\n () => ({\n nodes: Object.values(state.nodes),\n edges: state.edges,\n setNodes: state.setNodes,\n setEdges: state.setEdges,\n }),\n [state]\n );\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport {\n ConnectionLineComponentProps,\n getSimpleBezierPath,\n Position,\n useConnection,\n} from \"@xyflow/react\";\n\nimport styles from \"./NodeComponents.module.css\";\n\nexport default ({\n fromX,\n fromY,\n toX,\n toY,\n fromHandle,\n fromNode,\n connectionStatus,\n}: ConnectionLineComponentProps) => {\n const { toNode, toHandle } = useConnection();\n\n // correcting the start point as we moved the nodes in our custom ports\n if (fromNode && fromHandle) {\n fromX = fromNode?.position.x + fromHandle.x;\n if (fromHandle.position === \"right\") {\n fromX += fromHandle.width;\n }\n }\n\n if (toNode && toHandle) {\n toX = toHandle.x - toHandle.width / 2; // align to left side of the handle\n if (toHandle.position === \"right\") {\n toX += toHandle.width;\n }\n }\n\n let d = getSimpleBezierPath({\n sourceX: fromX,\n sourceY: fromY,\n targetX: toX,\n targetY: toY,\n sourcePosition: Position.Right,\n targetPosition: Position.Left,\n });\n\n return (\n <g\n className={classNames(\n styles.ConnectionPath,\n \"react-flow__connection-path\",\n { [styles.valid]: connectionStatus === \"valid\" }\n )}\n >\n <path d={d[0]} />\n </g>\n );\n};\n","import React from \"react\";\nimport {\n applyEdgeChanges,\n applyNodeChanges,\n Background,\n BackgroundVariant,\n Connection,\n Controls,\n Edge,\n Node,\n ReactFlow,\n ReactFlowInstance,\n ReactFlowProvider,\n useOnSelectionChange,\n XYPosition,\n} from \"@xyflow/react\";\nimport { useDrop } from \"react-dnd\";\n\nimport { GraphedFunction } from \"../Engine/types\";\nimport { Engine } from \"../Engine\";\nimport { nodeTypes } from \"./Nodes\";\nimport { FlowContext } from \"./Context\";\nimport { WidgetProps } from \"./Components/Control\";\nimport { usePositions, useUpdatePositions } from \"../hooks/usePositions\";\nimport { FlowOptions, useFlow } from \"../hooks/useFlow\";\nimport { FunctionNode, NodeDropItem, Prompts, Updater } from \"./types\";\nimport ConnectionLine from \"./Components/ConnectionLine\";\n\nimport \"./style/xyflow.css\";\nimport styles from \"./Nodes/Nodes.module.css\";\n\nexport * from \"./types\";\n\n/**\n * goal: this component should only be responsible for updating the inner node graph, it should call the onChange handler\n * on any change, but not rerender when the given function changes, as it slows down the interface drastically\n */\n\ninterface FlowProps {\n function: GraphedFunction;\n engine: Engine;\n center?: boolean;\n fitView?: boolean;\n onChange?: (updater: Updater<GraphedFunction>) => void;\n onClick?: (event: React.MouseEvent, position: XYPosition) => void;\n onSelect?: (ids: string[]) => void;\n customControls?: Record<string, React.ComponentType<WidgetProps<any>>>;\n customPrompts?: Prompts;\n}\nfunction FlowInner({\n function: fn,\n engine,\n center = true,\n fitView,\n onChange,\n onClick,\n onSelect,\n}: FlowProps) {\n const [instance, setInstance] = React.useState<ReactFlowInstance | null>(\n null\n );\n\n let updatePosition = useUpdatePositions(fn);\n let [positions] = usePositions(fn);\n\n let options: FlowOptions = React.useMemo(() => {\n const handleDataChange =\n (id: string) => (newData: Partial<FunctionNode[\"data\"]>) => {\n onChange?.((fn) => {\n // update the function definition\n // console.log(\"before fn call update\", Object.keys(fn.body));\n const body = { ...fn.body };\n const fncall = { ...(body[id] || {}), ...newData };\n body[id] = fncall;\n // console.log(\"after fn call update\", Object.keys(body));\n const updatedFn = { ...fn, body };\n return updatedFn;\n });\n };\n\n const handleIOChange = (\n callback: (fn: GraphedFunction) => Partial<GraphedFunction>\n ) => {\n const changes = callback(fn);\n onChange?.((oldFn) => {\n return {\n ...oldFn,\n ...changes,\n };\n });\n };\n return {\n dragHandle: `.${styles.Label}`,\n positions,\n onDataChange: handleDataChange,\n onIOChange: handleIOChange,\n };\n }, [fn, onChange]);\n\n let { nodes, edges, setNodes, setEdges } = useFlow(fn, engine, options);\n\n // node selection handler\n const handleSelect = React.useCallback(\n ({ nodes }) => {\n onSelect?.(nodes.map((n: Node) => n.id) || []);\n },\n [onSelect]\n );\n useOnSelectionChange({\n onChange: handleSelect,\n });\n\n // dropping nodes\n let [{ isOver }, drop] = useDrop({\n accept: \"flow-node\",\n drop: (item: NodeDropItem, monitor) => {\n let pos = monitor.getClientOffset();\n\n if (instance && pos) {\n const position = instance.screenToFlowPosition(pos);\n // console.log(\"handle drop\", position);\n\n onChange?.((fn) => {\n return engine.applyNodeAdd(fn, item.name, (fnCall, id) => {\n // console.log(\"node added\", id, position);\n updatePosition(id, position);\n });\n });\n }\n },\n collect: (monitor) => {\n return {\n isOver: monitor.isOver(),\n };\n },\n });\n\n // connecting nodes\n const onConnect = React.useCallback(\n (params: Connection) => {\n const sourceField = params.sourceHandle?.split(\"-\")[1];\n const targetField = params.targetHandle?.split(\"-\")[1];\n if (!sourceField || !targetField) {\n console.warn(\"Invalid connection handles\", params);\n return;\n }\n onChange?.((fn) =>\n engine.applyNodeConnect(\n fn,\n params.source,\n params.target,\n sourceField,\n targetField\n )\n );\n },\n [fn, onChange]\n );\n\n // deleting nodes\n const onNodesDelete = React.useCallback(\n (nodesToDelete: Node[]) => {\n onChange?.((fn) =>\n engine.applyNodeDelete(\n fn,\n nodesToDelete.map((n) => n.id)\n )\n );\n },\n [onChange, fn]\n );\n\n // deleting edges\n const onEdgesDelete = React.useCallback(\n (edgesToDelete: Edge[]) => {\n onChange?.((fn) => {\n let newFn = fn;\n edgesToDelete.forEach((edge) => {\n const sourceField = edge.sourceHandle?.split(\"-\")[1];\n const targetField = edge.targetHandle?.split(\"-\")[1];\n if (!sourceField || !targetField) {\n console.warn(\"Invalid connection handles\", edge);\n return;\n }\n newFn = engine.applyEdgeDelete(\n newFn,\n edge.source,\n edge.target,\n sourceField,\n targetField\n );\n });\n return newFn;\n });\n },\n [onChange, fn]\n );\n\n // handle canvas clicks to be able to place nodes\n const handleClick = (e: React.MouseEvent) => {\n if (instance) {\n const position = instance.screenToFlowPosition({\n x: e.clientX,\n y: e.clientY,\n });\n onClick?.(e, position);\n }\n };\n\n const onNodesChange = React.useCallback((changes) => {\n changes = changes.filter((change) => {\n if (change.id === \"output\" && change.type === \"remove\")\n return false;\n return true;\n });\n return setNodes((nodesSnapshot) =>\n applyNodeChanges(changes, nodesSnapshot)\n );\n }, []);\n const onEdgesChange = React.useCallback((changes) => {\n changes = changes.filter((change) => {\n if (change.id.includes(\"-output.\") && change.type === \"remove\")\n return false;\n return true;\n });\n return setEdges((edgesSnapshot) =>\n applyEdgeChanges(changes, edgesSnapshot)\n );\n }, []);\n\n return (\n <ReactFlow\n ref={drop as any}\n nodes={nodes}\n edges={edges}\n nodeTypes={nodeTypes}\n onNodesChange={onNodesChange}\n onEdgesChange={onEdgesChange}\n onNodesDelete={onNodesDelete}\n onEdgesDelete={onEdgesDelete}\n onNodeDragStop={(e, n) => updatePosition(n.id, n.position)}\n onConnect={onConnect}\n onInit={setInstance}\n onPaneClick={handleClick}\n fitView={center || fitView}\n fitViewOptions={{\n minZoom: fitView ? undefined : 1,\n maxZoom: fitView ? undefined : 1,\n }}\n // panOnDrag={false}\n selectionOnDrag={true}\n minZoom={0.1}\n maxZoom={4}\n deleteKeyCode={\"Delete\"}\n connectionLineComponent={ConnectionLine}\n >\n <Background variant={BackgroundVariant.Dots} />\n <Controls />\n </ReactFlow>\n );\n}\n\nexport function Flow(props: FlowProps) {\n const contextValue = React.useMemo(\n () => ({\n engine: props.engine,\n controls: props.customControls,\n graphedFn: props.function,\n prompts: props.customPrompts,\n }),\n [props.engine, props.customControls, props.function]\n );\n return (\n <FlowContext.Provider value={contextValue}>\n <ReactFlowProvider>\n <FlowInner {...props} />\n </ReactFlowProvider>\n </FlowContext.Provider>\n );\n}\n","import { ConnectableElement, useDrag } from \"react-dnd\";\n\nimport { PrimitiveFunction } from \"../Engine\";\nimport { NodeDropItem } from \"../Flow\";\n\nexport function useDraggableNode(name: string, fn: PrimitiveFunction) {\n let [, drag] = useDrag<NodeDropItem>({\n type: \"flow-node\",\n item: { name, fn },\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n return (ref: ConnectableElement) => drag(ref);\n}\n","import React from \"react\";\nimport { Engine, GraphedFunction } from \"../Engine\";\n\n/**\n * using functions\n *\n * in React context\n * - use useFunction. This will build the function, mount it if needed and provides a run function.\n *\n *\n * in Vanilla context\n * - use engine.build(fn) to build the function\n * - use engine.mount(fn) to mount the function (if it has a mount function)\n * - use await engine.run(fn, inputs) to run the function and get the result\n */\n\nexport function useFunction(\n engine: Engine,\n fn: GraphedFunction,\n mount?: boolean\n) {\n const [result, setResult] = React.useState<any>(null);\n const builtFn = React.useMemo(() => engine.build(fn), [fn]);\n React.useEffect(() => {\n if (mount) {\n return engine.mount(builtFn);\n }\n }, [builtFn, mount]);\n\n const run = React.useCallback(\n async (inputs?: Record<string, any>) => {\n const result = await engine.run(builtFn, inputs);\n setResult(result);\n return result;\n },\n [builtFn]\n );\n\n return React.useMemo(\n () => ({\n fn: builtFn,\n run,\n result,\n }),\n [builtFn, run, result]\n );\n}\n","// cheap lodash replacements\nexport function memoize(fn) {\n let result = null;\n const memoized = ()=>{\n if (result == null) {\n result = fn();\n }\n return result;\n };\n return memoized;\n}\n/**\n * drop-in replacement for _.without\n */ export function without(items, item) {\n return items.filter((i)=>i !== item\n );\n}\nexport function union(itemsA, itemsB) {\n const set = new Set();\n const insertItem = (item)=>set.add(item)\n ;\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n const result = [];\n set.forEach((key)=>result.push(key)\n );\n return result;\n}\n\n//# sourceMappingURL=js_utils.js.map","import { union, without } from './utils/js_utils.js';\nexport class EnterLeaveCounter {\n enter(enteringNode) {\n const previousLength = this.entered.length;\n const isNodeEntered = (node)=>this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode))\n ;\n this.entered = union(this.entered.filter(isNodeEntered), [\n enteringNode\n ]);\n return previousLength === 0 && this.entered.length > 0;\n }\n leave(leavingNode) {\n const previousLength = this.entered.length;\n this.entered = without(this.entered.filter(this.isNodeInDocument), leavingNode);\n return previousLength > 0 && this.entered.length === 0;\n }\n reset() {\n this.entered = [];\n }\n constructor(isNodeInDocument){\n this.entered = [];\n this.isNodeInDocument = isNodeInDocument;\n }\n}\n\n//# sourceMappingURL=EnterLeaveCounter.js.map","export class NativeDragSource {\n initializeExposedProperties() {\n Object.keys(this.config.exposeProperties).forEach((property)=>{\n Object.defineProperty(this.item, property, {\n configurable: true,\n enumerable: true,\n get () {\n // eslint-disable-next-line no-console\n console.warn(`Browser doesn't allow reading \"${property}\" until the drop event.`);\n return null;\n }\n });\n });\n }\n loadDataTransfer(dataTransfer) {\n if (dataTransfer) {\n const newProperties = {};\n Object.keys(this.config.exposeProperties).forEach((property)=>{\n const propertyFn = this.config.exposeProperties[property];\n if (propertyFn != null) {\n newProperties[property] = {\n value: propertyFn(dataTransfer, this.config.matchesTypes),\n configurable: true,\n enumerable: true\n };\n }\n });\n Object.defineProperties(this.item, newProperties);\n }\n }\n canDrag() {\n return true;\n }\n beginDrag() {\n return this.item;\n }\n isDragging(monitor, handle) {\n return handle === monitor.getSourceId();\n }\n endDrag() {\n // empty\n }\n constructor(config){\n this.config = config;\n this.item = {};\n this.initializeExposedProperties();\n }\n}\n\n//# sourceMappingURL=NativeDragSource.js.map","export const FILE = '__NATIVE_FILE__';\nexport const URL = '__NATIVE_URL__';\nexport const TEXT = '__NATIVE_TEXT__';\nexport const HTML = '__NATIVE_HTML__';\n\n//# sourceMappingURL=NativeTypes.js.map","export function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {\n const result = typesToTry.reduce((resultSoFar, typeToTry)=>resultSoFar || dataTransfer.getData(typeToTry)\n , '');\n return result != null ? result : defaultValue;\n}\n\n//# sourceMappingURL=getDataFromDataTransfer.js.map","import * as NativeTypes from '../NativeTypes.js';\nimport { getDataFromDataTransfer } from './getDataFromDataTransfer.js';\nexport const nativeTypesConfig = {\n [NativeTypes.FILE]: {\n exposeProperties: {\n files: (dataTransfer)=>Array.prototype.slice.call(dataTransfer.files)\n ,\n items: (dataTransfer)=>dataTransfer.items\n ,\n dataTransfer: (dataTransfer)=>dataTransfer\n },\n matchesTypes: [\n 'Files'\n ]\n },\n [NativeTypes.HTML]: {\n exposeProperties: {\n html: (dataTransfer, matchesTypes)=>getDataFromDataTransfer(dataTransfer, matchesTypes, '')\n ,\n dataTransfer: (dataTransfer)=>dataTransfer\n },\n matchesTypes: [\n 'Html',\n 'text/html'\n ]\n },\n [NativeTypes.URL]: {\n exposeProperties: {\n urls: (dataTransfer, matchesTypes)=>getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n')\n ,\n dataTransfer: (dataTransfer)=>dataTransfer\n },\n matchesTypes: [\n 'Url',\n 'text/uri-list'\n ]\n },\n [NativeTypes.TEXT]: {\n exposeProperties: {\n text: (dataTransfer, matchesTypes)=>getDataFromDataTransfer(dataTransfer, matchesTypes, '')\n ,\n dataTransfer: (dataTransfer)=>dataTransfer\n },\n matchesTypes: [\n 'Text',\n 'text/plain'\n ]\n }\n};\n\n//# sourceMappingURL=nativeTypesConfig.js.map","import { NativeDragSource } from './NativeDragSource.js';\nimport { nativeTypesConfig } from './nativeTypesConfig.js';\nexport function createNativeDragSource(type, dataTransfer) {\n const config = nativeTypesConfig[type];\n if (!config) {\n throw new Error(`native type ${type} has no configuration`);\n }\n const result = new NativeDragSource(config);\n result.loadDataTransfer(dataTransfer);\n return result;\n}\nexport function matchNativeItemType(dataTransfer) {\n if (!dataTransfer) {\n return null;\n }\n const dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);\n return Object.keys(nativeTypesConfig).filter((nativeItemType)=>{\n const typeConfig = nativeTypesConfig[nativeItemType];\n if (!(typeConfig === null || typeConfig === void 0 ? void 0 : typeConfig.matchesTypes)) {\n return false;\n }\n return typeConfig.matchesTypes.some((t)=>dataTransferTypes.indexOf(t) > -1\n );\n })[0] || null;\n}\n\n//# sourceMappingURL=index.js.map","import { memoize } from './utils/js_utils.js';\nexport const isFirefox = memoize(()=>/firefox/i.test(navigator.userAgent)\n);\nexport const isSafari = memoize(()=>Boolean(window.safari)\n);\n\n//# sourceMappingURL=BrowserDetector.js.map","export class MonotonicInterpolant {\n interpolate(x) {\n const { xs , ys , c1s , c2s , c3s } = this;\n // The rightmost point in the dataset should give an exact result\n let i = xs.length - 1;\n if (x === xs[i]) {\n return ys[i];\n }\n // Search for the interval x is in, returning the corresponding y if x is one of the original xs\n let low = 0;\n let high = c3s.length - 1;\n let mid;\n while(low <= high){\n mid = Math.floor(0.5 * (low + high));\n const xHere = xs[mid];\n if (xHere < x) {\n low = mid + 1;\n } else if (xHere > x) {\n high = mid - 1;\n } else {\n return ys[mid];\n }\n }\n i = Math.max(0, high);\n // Interpolate\n const diff = x - xs[i];\n const diffSq = diff * diff;\n return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;\n }\n constructor(xs, ys){\n const { length } = xs;\n // Rearrange xs and ys so that xs is sorted\n const indexes = [];\n for(let i = 0; i < length; i++){\n indexes.push(i);\n }\n indexes.sort((a, b)=>xs[a] < xs[b] ? -1 : 1\n );\n // Get consecutive differences and slopes\n const dys = [];\n const dxs = [];\n const ms = [];\n let dx;\n let dy;\n for(let i1 = 0; i1 < length - 1; i1++){\n dx = xs[i1 + 1] - xs[i1];\n dy = ys[i1 + 1] - ys[i1];\n dxs.push(dx);\n dys.push(dy);\n ms.push(dy / dx);\n }\n // Get degree-1 coefficients\n const c1s = [\n ms[0]\n ];\n for(let i2 = 0; i2 < dxs.length - 1; i2++){\n const m2 = ms[i2];\n const mNext = ms[i2 + 1];\n if (m2 * mNext <= 0) {\n c1s.push(0);\n } else {\n dx = dxs[i2];\n const dxNext = dxs[i2 + 1];\n const common = dx + dxNext;\n c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));\n }\n }\n c1s.push(ms[ms.length - 1]);\n // Get degree-2 and degree-3 coefficients\n const c2s = [];\n const c3s = [];\n let m;\n for(let i3 = 0; i3 < c1s.length - 1; i3++){\n m = ms[i3];\n const c1 = c1s[i3];\n const invDx = 1 / dxs[i3];\n const common = c1 + c1s[i3 + 1] - m - m;\n c2s.push((m - c1 - common) * invDx);\n c3s.push(common * invDx * invDx);\n }\n this.xs = xs;\n this.ys = ys;\n this.c1s = c1s;\n this.c2s = c2s;\n this.c3s = c3s;\n }\n}\n\n//# sourceMappingURL=MonotonicInterpolant.js.map","import { isFirefox, isSafari } from './BrowserDetector.js';\nimport { MonotonicInterpolant } from './MonotonicInterpolant.js';\nconst ELEMENT_NODE = 1;\nexport function getNodeClientOffset(node) {\n const el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n if (!el) {\n return null;\n }\n const { top , left } = el.getBoundingClientRect();\n return {\n x: left,\n y: top\n };\n}\nexport function getEventClientOffset(e) {\n return {\n x: e.clientX,\n y: e.clientY\n };\n}\nfunction isImageNode(node) {\n var ref;\n return node.nodeName === 'IMG' && (isFirefox() || !((ref = document.documentElement) === null || ref === void 0 ? void 0 : ref.contains(node)));\n}\nfunction getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {\n let dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;\n let dragPreviewHeight = isImage ? dragPreview.height : sourceHeight;\n // Work around @2x coordinate discrepancies in browsers\n if (isSafari() && isImage) {\n dragPreviewHeight /= window.devicePixelRatio;\n dragPreviewWidth /= window.devicePixelRatio;\n }\n return {\n dragPreviewWidth,\n dragPreviewHeight\n };\n}\nexport function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {\n // The browsers will use the image intrinsic size under different conditions.\n // Firefox only cares if it's an image, but WebKit also wants it to be detached.\n const isImage = isImageNode(dragPreview);\n const dragPreviewNode = isImage ? sourceNode : dragPreview;\n const dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);\n const offsetFromDragPreview = {\n x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n y: clientOffset.y - dragPreviewNodeOffsetFromClient.y\n };\n const { offsetWidth: sourceWidth , offsetHeight: sourceHeight } = sourceNode;\n const { anchorX , anchorY } = anchorPoint;\n const { dragPreviewWidth , dragPreviewHeight } = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight);\n const calculateYOffset = ()=>{\n const interpolantY = new MonotonicInterpolant([\n 0,\n 0.5,\n 1\n ], [\n // Dock to the top\n offsetFromDragPreview.y,\n // Align at the center\n (offsetFromDragPreview.y / sourceHeight) * dragPreviewHeight,\n // Dock to the bottom\n offsetFromDragPreview.y + dragPreviewHeight - sourceHeight, \n ]);\n let y = interpolantY.interpolate(anchorY);\n // Work around Safari 8 positioning bug\n if (isSafari() && isImage) {\n // We'll have to wait for @3x to see if this is entirely correct\n y += (window.devicePixelRatio - 1) * dragPreviewHeight;\n }\n return y;\n };\n const calculateXOffset = ()=>{\n // Interpolate coordinates depending on anchor point\n // If you know a simpler way to do this, let me know\n const interpolantX = new MonotonicInterpolant([\n 0,\n 0.5,\n 1\n ], [\n // Dock to the left\n offsetFromDragPreview.x,\n // Align at the center\n (offsetFromDragPreview.x / sourceWidth) * dragPreviewWidth,\n // Dock to the right\n offsetFromDragPreview.x + dragPreviewWidth - sourceWidth, \n ]);\n return interpolantX.interpolate(anchorX);\n };\n // Force offsets if specified in the options.\n const { offsetX , offsetY } = offsetPoint;\n const isManualOffsetX = offsetX === 0 || offsetX;\n const isManualOffsetY = offsetY === 0 || offsetY;\n return {\n x: isManualOffsetX ? offsetX : calculateXOffset(),\n y: isManualOffsetY ? offsetY : calculateYOffset()\n };\n}\n\n//# sourceMappingURL=OffsetUtils.js.map","export class OptionsReader {\n get window() {\n if (this.globalContext) {\n return this.globalContext;\n } else if (typeof window !== 'undefined') {\n return window;\n }\n return undefined;\n }\n get document() {\n var ref;\n if ((ref = this.globalContext) === null || ref === void 0 ? void 0 : ref.document) {\n return this.globalContext.document;\n } else if (this.window) {\n return this.window.document;\n } else {\n return undefined;\n }\n }\n get rootElement() {\n var ref;\n return ((ref = this.optionsArgs) === null || ref === void 0 ? void 0 : ref.rootElement) || this.window;\n }\n constructor(globalContext, options){\n this.ownerDocument = null;\n this.globalContext = globalContext;\n this.optionsArgs = options;\n }\n}\n\n//# sourceMappingURL=OptionsReader.js.map","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectSpread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n return target;\n}\nimport { EnterLeaveCounter } from './EnterLeaveCounter.js';\nimport { createNativeDragSource, matchNativeItemType } from './NativeDragSources/index.js';\nimport * as NativeTypes from './NativeTypes.js';\nimport { getDragPreviewOffset, getEventClientOffset, getNodeClientOffset } from './OffsetUtils.js';\nimport { OptionsReader } from './OptionsReader.js';\nexport class HTML5BackendImpl {\n /**\n\t * Generate profiling statistics for the HTML5Backend.\n\t */ profile() {\n var ref, ref1;\n return {\n sourcePreviewNodes: this.sourcePreviewNodes.size,\n sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,\n sourceNodeOptions: this.sourceNodeOptions.size,\n sourceNodes: this.sourceNodes.size,\n dragStartSourceIds: ((ref = this.dragStartSourceIds) === null || ref === void 0 ? void 0 : ref.length) || 0,\n dropTargetIds: this.dropTargetIds.length,\n dragEnterTargetIds: this.dragEnterTargetIds.length,\n dragOverTargetIds: ((ref1 = this.dragOverTargetIds) === null || ref1 === void 0 ? void 0 : ref1.length) || 0\n };\n }\n // public for test\n get window() {\n return this.options.window;\n }\n get document() {\n return this.options.document;\n }\n /**\n\t * Get the root element to use for event subscriptions\n\t */ get rootElement() {\n return this.options.rootElement;\n }\n setup() {\n const root = this.rootElement;\n if (root === undefined) {\n return;\n }\n if (root.__isReactDndBackendSetUp) {\n throw new Error('Cannot have two HTML5 backends at the same time.');\n }\n root.__isReactDndBackendSetUp = true;\n this.addEventListeners(root);\n }\n teardown() {\n const root = this.rootElement;\n if (root === undefined) {\n return;\n }\n root.__isReactDndBackendSetUp = false;\n this.removeEventListeners(this.rootElement);\n this.clearCurrentDragSourceNode();\n if (this.asyncEndDragFrameId) {\n var ref;\n (ref = this.window) === null || ref === void 0 ? void 0 : ref.cancelAnimationFrame(this.asyncEndDragFrameId);\n }\n }\n connectDragPreview(sourceId, node, options) {\n this.sourcePreviewNodeOptions.set(sourceId, options);\n this.sourcePreviewNodes.set(sourceId, node);\n return ()=>{\n this.sourcePreviewNodes.delete(sourceId);\n this.sourcePreviewNodeOptions.delete(sourceId);\n };\n }\n connectDragSource(sourceId, node, options) {\n this.sourceNodes.set(sourceId, node);\n this.sourceNodeOptions.set(sourceId, options);\n const handleDragStart = (e)=>this.handleDragStart(e, sourceId)\n ;\n const handleSelectStart = (e)=>this.handleSelectStart(e)\n ;\n node.setAttribute('draggable', 'true');\n node.addEventListener('dragstart', handleDragStart);\n node.addEventListener('selectstart', handleSelectStart);\n return ()=>{\n this.sourceNodes.delete(sourceId);\n this.sourceNodeOptions.delete(sourceId);\n node.removeEventListener('dragstart', handleDragStart);\n node.removeEventListener('selectstart', handleSelectStart);\n node.setAttribute('draggable', 'false');\n };\n }\n connectDropTarget(targetId, node) {\n const handleDragEnter = (e)=>this.handleDragEnter(e, targetId)\n ;\n const handleDragOver = (e)=>this.handleDragOver(e, targetId)\n ;\n const handleDrop = (e)=>this.handleDrop(e, targetId)\n ;\n node.addEventListener('dragenter', handleDragEnter);\n node.addEventListener('dragover', handleDragOver);\n node.addEventListener('drop', handleDrop);\n return ()=>{\n node.removeEventListener('dragenter', handleDragEnter);\n node.removeEventListener('dragover', handleDragOver);\n node.removeEventListener('drop', handleDrop);\n };\n }\n addEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.addEventListener) {\n return;\n }\n target.addEventListener('dragstart', this.handleTopDragStart);\n target.addEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.addEventListener('dragend', this.handleTopDragEndCapture, true);\n target.addEventListener('dragenter', this.handleTopDragEnter);\n target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.addEventListener('dragover', this.handleTopDragOver);\n target.addEventListener('dragover', this.handleTopDragOverCapture, true);\n target.addEventListener('drop', this.handleTopDrop);\n target.addEventListener('drop', this.handleTopDropCapture, true);\n }\n removeEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.removeEventListener) {\n return;\n }\n target.removeEventListener('dragstart', this.handleTopDragStart);\n target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.removeEventListener('dragend', this.handleTopDragEndCapture, true);\n target.removeEventListener('dragenter', this.handleTopDragEnter);\n target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.removeEventListener('dragover', this.handleTopDragOver);\n target.removeEventListener('dragover', this.handleTopDragOverCapture, true);\n target.removeEventListener('drop', this.handleTopDrop);\n target.removeEventListener('drop', this.handleTopDropCapture, true);\n }\n getCurrentSourceNodeOptions() {\n const sourceId = this.monitor.getSourceId();\n const sourceNodeOptions = this.sourceNodeOptions.get(sourceId);\n return _objectSpread({\n dropEffect: this.altKeyPressed ? 'copy' : 'move'\n }, sourceNodeOptions || {});\n }\n getCurrentDropEffect() {\n if (this.isDraggingNativeItem()) {\n // It makes more sense to default to 'copy' for native resources\n return 'copy';\n }\n return this.getCurrentSourceNodeOptions().dropEffect;\n }\n getCurrentSourcePreviewNodeOptions() {\n const sourceId = this.monitor.getSourceId();\n const sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);\n return _objectSpread({\n anchorX: 0.5,\n anchorY: 0.5,\n captureDraggingState: false\n }, sourcePreviewNodeOptions || {});\n }\n isDraggingNativeItem() {\n const itemType = this.monitor.getItemType();\n return Object.keys(NativeTypes).some((key)=>NativeTypes[key] === itemType\n );\n }\n beginDragNativeItem(type, dataTransfer) {\n this.clearCurrentDragSourceNode();\n this.currentNativeSource = createNativeDragSource(type, dataTransfer);\n this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);\n this.actions.beginDrag([\n this.currentNativeHandle\n ]);\n }\n setCurrentDragSourceNode(node) {\n this.clearCurrentDragSourceNode();\n this.currentDragSourceNode = node;\n // A timeout of > 0 is necessary to resolve Firefox issue referenced\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n const MOUSE_MOVE_TIMEOUT = 1000;\n // Receiving a mouse event in the middle of a dragging operation\n // means it has ended and the drag source node disappeared from DOM,\n // so the browser didn't dispatch the dragend event.\n //\n // We need to wait before we start listening for mousemove events.\n // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n // immediately in some browsers.\n //\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n //\n this.mouseMoveTimeoutTimer = setTimeout(()=>{\n var ref;\n return (ref = this.rootElement) === null || ref === void 0 ? void 0 : ref.addEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n }, MOUSE_MOVE_TIMEOUT);\n }\n clearCurrentDragSourceNode() {\n if (this.currentDragSourceNode) {\n this.currentDragSourceNode = null;\n if (this.rootElement) {\n var ref;\n (ref = this.window) === null || ref === void 0 ? void 0 : ref.clearTimeout(this.mouseMoveTimeoutTimer || undefined);\n this.rootElement.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n }\n this.mouseMoveTimeoutTimer = null;\n return true;\n }\n return false;\n }\n handleDragStart(e, sourceId) {\n if (e.defaultPrevented) {\n return;\n }\n if (!this.dragStartSourceIds) {\n this.dragStartSourceIds = [];\n }\n this.dragStartSourceIds.unshift(sourceId);\n }\n handleDragEnter(_e, targetId) {\n this.dragEnterTargetIds.unshift(targetId);\n }\n handleDragOver(_e, targetId) {\n if (this.dragOverTargetIds === null) {\n this.dragOverTargetIds = [];\n }\n this.dragOverTargetIds.unshift(targetId);\n }\n handleDrop(_e, targetId) {\n this.dropTargetIds.unshift(targetId);\n }\n constructor(manager, globalContext, options){\n this.sourcePreviewNodes = new Map();\n this.sourcePreviewNodeOptions = new Map();\n this.sourceNodes = new Map();\n this.sourceNodeOptions = new Map();\n this.dragStartSourceIds = null;\n this.dropTargetIds = [];\n this.dragEnterTargetIds = [];\n this.currentNativeSource = null;\n this.currentNativeHandle = null;\n this.currentDragSourceNode = null;\n this.altKeyPressed = false;\n this.mouseMoveTimeoutTimer = null;\n this.asyncEndDragFrameId = null;\n this.dragOverTargetIds = null;\n this.lastClientOffset = null;\n this.hoverRafId = null;\n this.getSourceClientOffset = (sourceId)=>{\n const source = this.sourceNodes.get(sourceId);\n return source && getNodeClientOffset(source) || null;\n };\n this.endDragNativeItem = ()=>{\n if (!this.isDraggingNativeItem()) {\n return;\n }\n this.actions.endDrag();\n if (this.currentNativeHandle) {\n this.registry.removeSource(this.currentNativeHandle);\n }\n this.currentNativeHandle = null;\n this.currentNativeSource = null;\n };\n this.isNodeInDocument = (node)=>{\n // Check the node either in the main document or in the current context\n return Boolean(node && this.document && this.document.body && this.document.body.contains(node));\n };\n this.endDragIfSourceWasRemovedFromDOM = ()=>{\n const node = this.currentDragSourceNode;\n if (node == null || this.isNodeInDocument(node)) {\n return;\n }\n if (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n this.actions.endDrag();\n }\n this.cancelHover();\n };\n this.scheduleHover = (dragOverTargetIds)=>{\n if (this.hoverRafId === null && typeof requestAnimationFrame !== 'undefined') {\n this.hoverRafId = requestAnimationFrame(()=>{\n if (this.monitor.isDragging()) {\n this.actions.hover(dragOverTargetIds || [], {\n clientOffset: this.lastClientOffset\n });\n }\n this.hoverRafId = null;\n });\n }\n };\n this.cancelHover = ()=>{\n if (this.hoverRafId !== null && typeof cancelAnimationFrame !== 'undefined') {\n cancelAnimationFrame(this.hoverRafId);\n this.hoverRafId = null;\n }\n };\n this.handleTopDragStartCapture = ()=>{\n this.clearCurrentDragSourceNode();\n this.dragStartSourceIds = [];\n };\n this.handleTopDragStart = (e)=>{\n if (e.defaultPrevented) {\n return;\n }\n const { dragStartSourceIds } = this;\n this.dragStartSourceIds = null;\n const clientOffset = getEventClientOffset(e);\n // Avoid crashing if we missed a drop event or our previous drag died\n if (this.monitor.isDragging()) {\n this.actions.endDrag();\n this.cancelHover();\n }\n // Don't publish the source just yet (see why below)\n this.actions.beginDrag(dragStartSourceIds || [], {\n publishSource: false,\n getSourceClientOffset: this.getSourceClientOffset,\n clientOffset\n });\n const { dataTransfer } = e;\n const nativeType = matchNativeItemType(dataTransfer);\n if (this.monitor.isDragging()) {\n if (dataTransfer && typeof dataTransfer.setDragImage === 'function') {\n // Use custom drag image if user specifies it.\n // If child drag source refuses drag but parent agrees,\n // use parent's node as drag image. Neither works in IE though.\n const sourceId = this.monitor.getSourceId();\n const sourceNode = this.sourceNodes.get(sourceId);\n const dragPreview = this.sourcePreviewNodes.get(sourceId) || sourceNode;\n if (dragPreview) {\n const { anchorX , anchorY , offsetX , offsetY } = this.getCurrentSourcePreviewNodeOptions();\n const anchorPoint = {\n anchorX,\n anchorY\n };\n const offsetPoint = {\n offsetX,\n offsetY\n };\n const dragPreviewOffset = getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);\n dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);\n }\n }\n try {\n // Firefox won't drag without setting data\n dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {});\n } catch (err) {\n // IE doesn't support MIME types in setData\n }\n // Store drag source node so we can check whether\n // it is removed from DOM and trigger endDrag manually.\n this.setCurrentDragSourceNode(e.target);\n // Now we are ready to publish the drag source.. or are we not?\n const { captureDraggingState } = this.getCurrentSourcePreviewNodeOptions();\n if (!captureDraggingState) {\n // Usually we want to publish it in the next tick so that browser\n // is able to screenshot the current (not yet dragging) state.\n //\n // It also neatly avoids a situation where render() returns null\n // in the same tick for the source element, and browser freaks out.\n setTimeout(()=>this.actions.publishDragSource()\n , 0);\n } else {\n // In some cases the user may want to override this behavior, e.g.\n // to work around IE not supporting custom drag previews.\n //\n // When using a custom drag layer, the only way to prevent\n // the default drag preview from drawing in IE is to screenshot\n // the dragging state in which the node itself has zero opacity\n // and height. In this case, though, returning null from render()\n // will abruptly end the dragging, which is not obvious.\n //\n // This is the reason such behavior is strictly opt-in.\n this.actions.publishDragSource();\n }\n } else if (nativeType) {\n // A native item (such as URL) dragged from inside the document\n this.beginDragNativeItem(nativeType);\n } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {\n // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n // Just let it drag. It's a native type (URL or text) and will be picked up in\n // dragenter handler.\n return;\n } else {\n // If by this time no drag source reacted, tell browser not to drag.\n e.preventDefault();\n }\n };\n this.handleTopDragEndCapture = ()=>{\n if (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n // Firefox can dispatch this event in an infinite loop\n // if dragend handler does something like showing an alert.\n // Only proceed if we have not handled it already.\n this.actions.endDrag();\n }\n this.cancelHover();\n };\n this.handleTopDragEnterCapture = (e)=>{\n this.dragEnterTargetIds = [];\n if (this.isDraggingNativeItem()) {\n var ref;\n (ref = this.currentNativeSource) === null || ref === void 0 ? void 0 : ref.loadDataTransfer(e.dataTransfer);\n }\n const isFirstEnter = this.enterLeaveCounter.enter(e.target);\n if (!isFirstEnter || this.monitor.isDragging()) {\n return;\n }\n const { dataTransfer } = e;\n const nativeType = matchNativeItemType(dataTransfer);\n if (nativeType) {\n // A native item (such as file or URL) dragged from outside the document\n this.beginDragNativeItem(nativeType, dataTransfer);\n }\n };\n this.handleTopDragEnter = (e)=>{\n const { dragEnterTargetIds } = this;\n this.dragEnterTargetIds = [];\n if (!this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n return;\n }\n this.altKeyPressed = e.altKey;\n // If the target changes position as the result of `dragenter`, `dragover` might still\n // get dispatched despite target being no longer there. The easy solution is to check\n // whether there actually is a target before firing `hover`.\n if (dragEnterTargetIds.length > 0) {\n this.actions.hover(dragEnterTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n }\n const canDrop = dragEnterTargetIds.some((targetId)=>this.monitor.canDropOnTarget(targetId)\n );\n if (canDrop) {\n // IE requires this to fire dragover events\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = this.getCurrentDropEffect();\n }\n }\n };\n this.handleTopDragOverCapture = (e)=>{\n this.dragOverTargetIds = [];\n if (this.isDraggingNativeItem()) {\n var ref;\n (ref = this.currentNativeSource) === null || ref === void 0 ? void 0 : ref.loadDataTransfer(e.dataTransfer);\n }\n };\n this.handleTopDragOver = (e)=>{\n const { dragOverTargetIds } = this;\n this.dragOverTargetIds = [];\n if (!this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n // Prevent default \"drop and blow away the whole document\" action.\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n return;\n }\n this.altKeyPressed = e.altKey;\n this.lastClientOffset = getEventClientOffset(e);\n this.scheduleHover(dragOverTargetIds);\n const canDrop = (dragOverTargetIds || []).some((targetId)=>this.monitor.canDropOnTarget(targetId)\n );\n if (canDrop) {\n // Show user-specified drop effect.\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = this.getCurrentDropEffect();\n }\n } else if (this.isDraggingNativeItem()) {\n // Don't show a nice cursor but still prevent default\n // \"drop and blow away the whole document\" action.\n e.preventDefault();\n } else {\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n }\n };\n this.handleTopDragLeaveCapture = (e)=>{\n if (this.isDraggingNativeItem()) {\n e.preventDefault();\n }\n const isLastLeave = this.enterLeaveCounter.leave(e.target);\n if (!isLastLeave) {\n return;\n }\n if (this.isDraggingNativeItem()) {\n setTimeout(()=>this.endDragNativeItem()\n , 0);\n }\n this.cancelHover();\n };\n this.handleTopDropCapture = (e)=>{\n this.dropTargetIds = [];\n if (this.isDraggingNativeItem()) {\n var ref;\n e.preventDefault();\n (ref = this.currentNativeSource) === null || ref === void 0 ? void 0 : ref.loadDataTransfer(e.dataTransfer);\n } else if (matchNativeItemType(e.dataTransfer)) {\n // Dragging some elements, like <a> and <img> may still behave like a native drag event,\n // even if the current drag event matches a user-defined type.\n // Stop the default behavior when we're not expecting a native item to be dropped.\n e.preventDefault();\n }\n this.enterLeaveCounter.reset();\n };\n this.handleTopDrop = (e)=>{\n const { dropTargetIds } = this;\n this.dropTargetIds = [];\n this.actions.hover(dropTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n this.actions.drop({\n dropEffect: this.getCurrentDropEffect()\n });\n if (this.isDraggingNativeItem()) {\n this.endDragNativeItem();\n } else if (this.monitor.isDragging()) {\n this.actions.endDrag();\n }\n this.cancelHover();\n };\n this.handleSelectStart = (e)=>{\n const target = e.target;\n // Only IE requires us to explicitly say\n // we want drag drop operation to start\n if (typeof target.dragDrop !== 'function') {\n return;\n }\n // Inputs and textareas should be selectable\n if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return;\n }\n // For other targets, ask IE\n // to enable drag and drop\n e.preventDefault();\n target.dragDrop();\n };\n this.options = new OptionsReader(globalContext, options);\n this.actions = manager.getActions();\n this.monitor = manager.getMonitor();\n this.registry = manager.getRegistry();\n this.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument);\n }\n}\n\n//# sourceMappingURL=HTML5BackendImpl.js.map","import { HTML5BackendImpl } from './HTML5BackendImpl.js';\nimport * as _NativeTypes from './NativeTypes.js';\nexport { getEmptyImage } from './getEmptyImage.js';\nexport { _NativeTypes as NativeTypes };\nexport const HTML5Backend = function createBackend(manager, context, options) {\n return new HTML5BackendImpl(manager, context, options);\n};\n\n//# sourceMappingURL=index.js.map","\"use client\";\nimport React from \"react\";\nimport { DndProvider } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\n\nexport function DDContext({ children }) {\n return <DndProvider backend={HTML5Backend}>{children}</DndProvider>;\n}\n"],"names":["simplifyTree","uid","getValue","getVal","primitives","_a","add","math","create","all","subtract","graft","trim","simplify","Util","Math","List","Sequence","Tree","Logic","IO","createContext","without","verifyInvariants","_defineProperty","_objectSpread","reduce","initialState","dirtyHandlerIds","dragOffset","refCount","dragOperation","stateId","memo","useEffect","_jsx","useLayoutEffect","useState","useCallback","useMemo","isValidElement","cloneElement","useContext","styles","Handle","Position","useReactFlow","useLongPress","compStyles","persist","useConnection","getSimpleBezierPath","useOnSelectionChange","applyNodeChanges","applyEdgeChanges","ReactFlow","Background","BackgroundVariant","Controls","ReactFlowProvider","NativeTypes.FILE","NativeTypes.HTML","NativeTypes.URL","NativeTypes.TEXT"],"mappings":"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","x_google_ignoreList":[0,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,136,137,138,139,140,141,142,143,144,145,146,147,148]}