{"version":3,"file":"static/js/8261.c51eb8a9.js","sources":["webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/acyclic.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/add-border-segments.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/coordinate-system.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/data/list.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/debug.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/greedy-fas.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/layout.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/nesting-graph.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/normalize.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/order/add-subgraph-constraints.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/order/barycenter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/order/build-layer-graph.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/order/cross-count.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/order/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/order/init-order.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/order/resolve-conflicts.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/order/sort-subgraph.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/order/sort.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/parent-dummy-chains.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/position/bk.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/position/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/rank/feasible-tree.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/rank/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/rank/network-simplex.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/rank/util.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/util.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+dagre@1.1.4/node_modules/@dagrejs/dagre/lib/version.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/components.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/dfs.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/dijkstra-all.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/dijkstra.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/find-cycles.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/floyd-warshall.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/is-acyclic.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/postorder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/preorder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/prim.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/tarjan.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/alg/topsort.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/data/priority-queue.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/graph.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/json.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@dagrejs+graphlib@2.2.4/node_modules/@dagrejs/graphlib/lib/version.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+cache@11.13.1/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+is-prop-valid@0.8.8/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+memoize@0.7.4/node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+memoize@0.9.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+weak-memoize@0.2.5/node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+react@11.5.0_@babel+core@7.25.9_@types+react@17.0.80_react@18.3.0/node_modules/@emotion/react/isolated-hoist-non-react-statics-do-not-use-this-in-your-code/dist/emotion-react-isolated-hoist-non-react-statics-do-not-use-this-in-your-code.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+react@11.5.0_@babel+core@7.25.9_@types+react@17.0.80_react@18.3.0/node_modules/@emotion/react/dist/emotion-element-99289b21.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+react@11.5.0_@babel+core@7.25.9_@types+react@17.0.80_react@18.3.0/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+hash@0.9.2/node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+unitless@0.10.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+serialize@1.3.2/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+is-prop-valid@1.3.1/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+styled@11.3.0_@babel+core@7.25.9_@emotion+react@11.5.0_@babel+core@7.25.9_@types+rea_3lerozl2uhylinzpsbydaswnjq/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+styled@11.3.0_@babel+core@7.25.9_@emotion+react@11.5.0_@babel+core@7.25.9_@types+rea_3lerozl2uhylinzpsbydaswnjq/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+stylis@0.8.5/node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+unitless@0.7.5/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@emotion+utils@1.4.1/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@fullstory+browser@1.6.1/node_modules/@fullstory/browser/dist/index.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@hypnosphi+create-react-context@0.3.1_prop-types@15.7.2_react@18.3.0/node_modules/@hypnosphi/create-react-context/lib/implementation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@hypnosphi+create-react-context@0.3.1_prop-types@15.7.2_react@18.3.0/node_modules/@hypnosphi/create-react-context/lib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@icons+material@0.2.4_react@18.3.0/node_modules/@icons/material/CheckIcon.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@icons+material@0.2.4_react@18.3.0/node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/utils/element.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/utils/global.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/utils/process.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@juggle+resize-observer@3.2.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/activate-features.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/create-express-middleware.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/get-active-feature-names.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/get-browser-query-feature-names.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/get-current-active-feature-names.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/get-is-enabled.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/get-query-feature-names.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/get-req-query-feature-names.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/is-active-feature-name.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/merge-feature-names.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+feature-toggles@1.0.4/node_modules/@paralleldrive/feature-toggles/dist/remove-feature-names.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+react-feature-toggles@2.3.1_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@paralleldrive/react-feature-toggles/dist/configure-feature.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+react-feature-toggles@2.3.1_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@paralleldrive/react-feature-toggles/dist/context.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+react-feature-toggles@2.3.1_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@paralleldrive/react-feature-toggles/dist/curry.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+react-feature-toggles@2.3.1_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@paralleldrive/react-feature-toggles/dist/feature-toggles.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+react-feature-toggles@2.3.1_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@paralleldrive/react-feature-toggles/dist/feature.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+react-feature-toggles@2.3.1_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@paralleldrive/react-feature-toggles/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+react-feature-toggles@2.3.1_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@paralleldrive/react-feature-toggles/dist/use-features.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+react-feature-toggles@2.3.1_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@paralleldrive/react-feature-toggles/dist/with-feature-toggles.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@paralleldrive+react-feature-toggles@2.3.1_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@paralleldrive/react-feature-toggles/dist/with-features.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getBorders.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/enums.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/debounce.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getDecorations.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/uniqueBy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/utils/within.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/popper.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@popperjs+core@2.0.3/node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+geometry@6.7.4/node_modules/@projectstorm/geometry/dist/BezierCurve.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+geometry@6.7.4/node_modules/@projectstorm/geometry/dist/Matrix.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+geometry@6.7.4/node_modules/@projectstorm/geometry/dist/Point.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+geometry@6.7.4/node_modules/@projectstorm/geometry/dist/Polygon.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+geometry@6.7.4/node_modules/@projectstorm/geometry/dist/Rectangle.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+geometry@6.7.4/node_modules/@projectstorm/geometry/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/CanvasEngine.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/Toolkit.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/actions/DeleteItemsAction.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/actions/ZoomCanvasAction.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-actions/Action.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-actions/ActionEventBus.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-models/BaseEntity.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-models/BaseModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-models/BasePositionModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-state/AbstractDisplacementState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-state/State.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-state/StateMachine.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/AbstractFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/AbstractModelFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/AbstractReactFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/BaseObserver.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/FactoryBank.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/ModelGeometryInterface.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/canvas/CanvasModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/canvas/CanvasWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/layer/LayerModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/layer/SmartLayerWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/layer/TransformLayerWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/selection/SelectionBoxLayerFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/selection/SelectionBoxWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/selection/SelectionLayerModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/states/DefaultState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/states/DragCanvasState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/states/MoveItemsState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/states/SelectingState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/states/SelectionBoxState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.6.1_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/widgets/PeformanceWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/CanvasEngine.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/Toolkit.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/actions/DeleteItemsAction.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/actions/PanAndZoomCanvasAction.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/actions/ZoomCanvasAction.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-actions/Action.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-actions/ActionEventBus.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-models/BaseEntity.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-models/BaseModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-models/BasePositionModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-state/AbstractDisplacementState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-state/State.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core-state/StateMachine.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/AbstractFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/AbstractModelFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/AbstractReactFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/BaseObserver.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/FactoryBank.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/core/ModelGeometryInterface.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/canvas/CanvasModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/canvas/CanvasWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/layer/LayerModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/layer/SmartLayerWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/layer/TransformLayerWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/selection/SelectionBoxLayerFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/selection/SelectionBoxWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/entities/selection/SelectionLayerModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/states/DefaultState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/states/DragCanvasState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/states/MoveItemsState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/states/SelectingState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/states/SelectionBoxState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-canvas-core@6.7.4_lodash@4.17.21_react@18.3.0/node_modules/@projectstorm/react-canvas-core/dist/widgets/PeformanceWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/DiagramEngine.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/label/LabelModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/label/LabelWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link-layer/LinkLayerFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link-layer/LinkLayerModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link-layer/LinkLayerWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link/LinkModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link/LinkWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link/PointModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/node-layer/NodeLayerFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/node-layer/NodeLayerModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/node-layer/NodeLayerWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/node/NodeModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/node/NodeWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/port/PortModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/port/PortWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/models/DiagramModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/states/DefaultDiagramState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/states/DragDiagramItemsState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.6.1_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/states/DragNewLinkState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/DiagramEngine.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/label/LabelModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/label/LabelWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link-layer/LinkLayerFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link-layer/LinkLayerModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link-layer/LinkLayerWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link/LinkModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link/LinkWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/link/PointModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/node-layer/NodeLayerFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/node-layer/NodeLayerModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/node-layer/NodeLayerWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/node/NodeModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/node/NodeWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/port/PortModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/entities/port/PortWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/models/DiagramModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/states/DefaultDiagramState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/states/DragDiagramItemsState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-core@6.7.4_lodash@4.17.21_react@18.3.0_resize-observer-polyfill@1.5.1/node_modules/@projectstorm/react-diagrams-core/dist/states/DragNewLinkState.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/label/DefaultLabelFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/label/DefaultLabelModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/label/DefaultLabelWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/link/DefaultLinkFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/link/DefaultLinkModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/link/DefaultLinkPointWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/link/DefaultLinkSegmentWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/link/DefaultLinkWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/node/DefaultNodeFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/node/DefaultNodeModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/node/DefaultNodeWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/port/DefaultPortFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/port/DefaultPortLabelWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_gd552guv72qa2iqvsfm2dhaawi/node_modules/@projectstorm/react-diagrams-defaults/dist/port/DefaultPortModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/label/DefaultLabelFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/label/DefaultLabelModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/label/DefaultLabelWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/link/DefaultLinkFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/link/DefaultLinkModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/link/DefaultLinkPointWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/link/DefaultLinkSegmentWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/link/DefaultLinkWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/node/DefaultNodeFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/node/DefaultNodeModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/node/DefaultNodeWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/port/DefaultPortFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/port/DefaultPortLabelWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-defaults@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+r_uf2ymbjl7eb5cyvzdylbbgczem/node_modules/@projectstorm/react-diagrams-defaults/dist/port/DefaultPortModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-routing@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+re_fkcc65actsjtp4bhvziutl724e/node_modules/@projectstorm/react-diagrams-routing/dist/dagre/DagreEngine.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-routing@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+re_fkcc65actsjtp4bhvziutl724e/node_modules/@projectstorm/react-diagrams-routing/dist/engine/PathFinding.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-routing@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+re_fkcc65actsjtp4bhvziutl724e/node_modules/@projectstorm/react-diagrams-routing/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-routing@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+re_fkcc65actsjtp4bhvziutl724e/node_modules/@projectstorm/react-diagrams-routing/dist/link/PathFindingLinkFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-routing@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+re_fkcc65actsjtp4bhvziutl724e/node_modules/@projectstorm/react-diagrams-routing/dist/link/PathFindingLinkModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-routing@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+re_fkcc65actsjtp4bhvziutl724e/node_modules/@projectstorm/react-diagrams-routing/dist/link/PathFindingLinkWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-routing@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+re_fkcc65actsjtp4bhvziutl724e/node_modules/@projectstorm/react-diagrams-routing/dist/link/RightAngleLinkFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-routing@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+re_fkcc65actsjtp4bhvziutl724e/node_modules/@projectstorm/react-diagrams-routing/dist/link/RightAngleLinkModel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams-routing@6.7.4_@emotion+react@11.5.0_@babel+core@7.25.9_@types+re_fkcc65actsjtp4bhvziutl724e/node_modules/@projectstorm/react-diagrams-routing/dist/link/RightAngleLinkWidget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@projectstorm+react-diagrams@6.6.1_@emotion+react@11.5.0_@babel+core@7.25.9_@types+react@17.0_juvt546brdgy7vb7tb7c2qlmgu/node_modules/@projectstorm/react-diagrams/dist/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@react-dnd+invariant@2.0.0/node_modules/@react-dnd/invariant/dist/invariant.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@react-dnd+shallowequal@2.0.0/node_modules/@react-dnd/shallowequal/dist/shallowequal.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@redux-saga+delay-p@1.2.1/node_modules/@redux-saga/delay-p/dist/redux-saga-delay-p.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@redux-saga+core@1.3.0/node_modules/@redux-saga/core/dist/io-22ea0cf9.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@redux-saga+is@1.1.3/node_modules/@redux-saga/is/dist/redux-saga-is.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@redux-saga+symbols@1.1.3/node_modules/@redux-saga/symbols/dist/redux-saga-symbols.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@yaireo+tagify@3.19.2/node_modules/@yaireo/tagify/dist/react.tagify.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@yaireo+tagify@3.19.2/node_modules/@yaireo/tagify/dist/tagify.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/adapters/xhr.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/axios.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/cancel/Cancel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/cancel/CancelToken.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/cancel/isCancel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/Axios.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/InterceptorManager.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/buildFullPath.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/createError.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/dispatchRequest.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/enhanceError.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/mergeConfig.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/settle.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/core/transformData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/defaults.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/env/data.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/bind.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/buildURL.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/combineURLs.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/cookies.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/isAxiosError.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/parseHeaders.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/spread.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/helpers/validator.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@0.24.0/node_modules/axios/lib/utils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/bowser@2.11.0/node_modules/bowser/es5.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/callBound.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/classnames@2.3.2/node_modules/classnames/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/clsx@1.1.1/node_modules/clsx/dist/clsx.m.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/content-type@1.0.5/node_modules/content-type/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/acyclic.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/add-border-segments.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/coordinate-system.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/data/list.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/debug.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/graphlib.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/greedy-fas.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/layout.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/lodash.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/nesting-graph.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/normalize.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/add-subgraph-constraints.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/barycenter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/build-layer-graph.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/cross-count.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/init-order.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/resolve-conflicts.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/sort-subgraph.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/sort.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/parent-dummy-chains.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/position/bk.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/position/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/feasible-tree.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/network-simplex.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/util.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/util.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/version.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/deep-equal@1.1.2/node_modules/deep-equal/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/define-properties@1.2.1/node_modules/define-properties/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dom-to-image-more@2.8.0/node_modules/dom-to-image-more/src/dom-to-image-more.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dommatrix@1.0.3/node_modules/dommatrix/dist/dommatrix.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dompurify@3.1.6/node_modules/dompurify/dist/purify.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/es-object-atoms@1.0.0/node_modules/es-object-atoms/RequireObjectCoercible.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/exenv@1.2.2/node_modules/exenv/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/fbjs@0.1.0-alpha.7/node_modules/fbjs/lib/invariant.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/flat@5.0.2/node_modules/flat/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/flux@2.1.1/node_modules/flux/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/flux@2.1.1/node_modules/flux/lib/Dispatcher.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/for-each@0.3.3/node_modules/for-each/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/functions-have-names@1.2.3/node_modules/functions-have-names/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/fuse.js@6.4.6/node_modules/fuse.js/dist/fuse.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/components.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/dfs.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/dijkstra-all.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/dijkstra.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/find-cycles.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/floyd-warshall.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/is-acyclic.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/postorder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/preorder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/prim.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/tarjan.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/topsort.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/data/priority-queue.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/graph.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/json.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/lodash.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/version.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/gud@1.0.0/node_modules/gud/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/shams.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/has@1.0.4/node_modules/has/src/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/heap@0.2.5/node_modules/heap/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/heap@0.2.5/node_modules/heap/lib/heap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/resolve-pathname@3.0.0/node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/value-equal@1.0.1/node_modules/value-equal/esm/value-equal.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/history@4.10.1/node_modules/history/esm/history.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/hoist-non-react-statics@3.3.1/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/browser.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/is-callable@1.2.7/node_modules/is-callable/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/is-date-object@1.0.5/node_modules/is-date-object/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/is-regex@1.1.4/node_modules/is-regex/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/isarray@0.0.1/node_modules/isarray/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/keyboardjs@2.6.4/node_modules/keyboardjs/dist/keyboard.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_DataView.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_LazyWrapper.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_LodashWrapper.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Promise.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Set.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_SetCache.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Stack.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Uint8Array.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_WeakMap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_apply.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayEach.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayFilter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayIncludes.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayIncludesWith.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayMap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayPush.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayReduce.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arraySome.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiSize.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiToArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiWords.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignMergeValue.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignValue.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssign.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignIn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignValue.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseClone.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseCreate.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseDifference.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseEach.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseExtremum.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFilter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFindIndex.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFlatten.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFor.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseForOwn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetAllKeys.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGt.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHas.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHasIn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIndexOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqual.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqualDeep.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMatch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNaN.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsSet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIteratee.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeys.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeysIn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseLodash.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseLt.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatches.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatchesProperty.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMerge.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMergeDeep.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseOrderBy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePick.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePickBy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseProperty.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyDeep.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseRange.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseReduce.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseRest.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSetData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSetToString.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSlice.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSortBy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTimes.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseToString.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnary.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUniq.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnset.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseValues.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseZipObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cacheHas.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castFunction.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castPath.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castSlice.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_charsEndIndex.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneArrayBuffer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneBuffer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneDataView.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneRegExp.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneSymbol.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneTypedArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareAscending.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareMultiple.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_composeArgs.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_composeArgsRight.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copySymbols.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copySymbolsIn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_countHolders.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createAssigner.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseEach.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseFor.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBind.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCaseFirst.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCompounder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCtor.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCurry.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createFind.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createFlow.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createHybrid.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createPartial.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createRange.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createRecurry.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createSet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createWrap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_customOmitClone.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_deburrLetter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_defineProperty.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalArrays.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalByTag.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalObjects.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_flatRest.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeys.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeysIn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getFuncName.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getHolder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMatchData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getPrototype.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbols.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbolsIn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getTag.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getWrapDetails.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasPath.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicode.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicodeWord.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneByTag.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_insertWrapDetails.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isFlattenable.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIndex.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIterateeCall.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKey.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isLaziable.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isPrototype.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isStrictComparable.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapToArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_matchesStrictComparable.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_memoizeCapped.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mergeData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_metaMap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeys.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeysIn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overArg.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overRest.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_parent.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_realNames.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_reorder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_replaceHolders.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_safeGet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheAdd.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheHas.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToString.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setWrapToString.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_shortOut.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackClear.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackDelete.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackGet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackHas.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackSet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_strictIndexOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringSize.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToPath.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toKey.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unescapeHtmlChar.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeSize.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeToArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeWords.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_updateWrapDetails.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_wrapperClone.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/ary.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/camelCase.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/capitalize.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/chunk.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/clone.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/cloneDeep.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/constant.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/curry.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/deburr.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/defaults.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/difference.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/each.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/filter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/find.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/findIndex.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/flatten.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/flowRight.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forEach.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forIn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forOwn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/fp/_baseConvert.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/fp/_mapping.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/fp/_util.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/fp/compose.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/fp/convert.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/fp/flowRight.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/fp/getOr.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/fp/join.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/fp/map.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/fp/placeholder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/has.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/hasIn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/identity.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArguments.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLike.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLikeObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isElement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEmpty.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEqual.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isError.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFinite.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isLength.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isMap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNil.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNull.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNumber.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isPlainObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSet.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isString.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isTypedArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isUndefined.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isWeakMap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/iteratee.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/join.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keys.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keysIn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/last.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/map.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/mapValues.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/max.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/maxBy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/memoize.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/merge.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/minBy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/negate.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/noop.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/omit.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/orderBy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/pick.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/property.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/range.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/rearg.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/reduce.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/reject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/size.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/sortBy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubFalse.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/throttle.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toFinite.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toInteger.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toPath.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toPlainObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toString.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/transform.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/trimEnd.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/unescape.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/union.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/unionBy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/uniq.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/uniqBy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/uniqueId.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/upperCase.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/upperFirst.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/values.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/words.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/wrapperLodash.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/zipObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/material-colors@1.2.6/node_modules/material-colors/dist/colors.es2015.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/node-polyglot@2.4.0/node_modules/node-polyglot/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/object-inspect@1.13.2/node_modules/object-inspect/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/implementation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/polyfill.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/shim.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/implementation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/isArguments.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/path-to-regexp@1.9.0/node_modules/path-to-regexp/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/PathFinding.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/core/DiagonalMovement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/core/Grid.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/core/Heuristic.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/core/Node.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/core/Util.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/AStarFinder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/BestFirstFinder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/BiAStarFinder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/BiBestFirstFinder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/BiBreadthFirstFinder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/BiDijkstraFinder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/BreadthFirstFinder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/DijkstraFinder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/IDAStarFinder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/JPFAlwaysMoveDiagonally.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/JPFMoveDiagonallyIfAtMostOneObstacle.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/JPFMoveDiagonallyIfNoObstacles.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/JPFNeverMoveDiagonally.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/JumpPointFinder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pathfinding@0.4.18/node_modules/pathfinding/src/finders/JumpPointFinderBase.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/paths-js@0.4.11/node_modules/paths-js/geom.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/paths-js@0.4.11/node_modules/paths-js/path.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/pdfjs-dist@2.14.305_worker-loader@3.0.8_webpack@5.91.0_@swc+core@1.7.6_@swc+helpers@0.5.12___/node_modules/pdfjs-dist/legacy/build/pdf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/construct.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/polished@4.0.5/node_modules/polished/dist/polished.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/prop-types@15.7.2/node_modules/prop-types/factoryWithThrowingShims.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/prop-types@15.7.2/node_modules/prop-types/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/prop-types@15.7.2/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/punycode@1.3.2/node_modules/punycode/punycode.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/qs@6.11.2/node_modules/qs/lib/formats.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/qs@6.11.2/node_modules/qs/lib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/qs@6.11.2/node_modules/qs/lib/parse.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/qs@6.11.2/node_modules/qs/lib/stringify.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/qs@6.11.2/node_modules/qs/lib/utils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/querystring@0.2.0/node_modules/querystring/decode.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/querystring@0.2.0/node_modules/querystring/encode.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/querystring@0.2.0/node_modules/querystring/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/querystringify@2.2.0/node_modules/querystringify/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/always.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/assoc.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/assocPath.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/bind.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/compose.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/curry.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/curryN.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/filter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/find.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_arity.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_checkForMethod.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_curry1.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_curry2.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_curry3.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_curryN.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_dispatchable.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_filter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_has.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_isArguments.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_isArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_isArrayLike.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_isInteger.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_isObject.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_isPlaceholder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_isString.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_isTransformer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_map.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_pipe.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_reduce.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_reduced.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_xfBase.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_xfilter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_xfind.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_xmap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/internal/_xwrap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/isNil.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/keys.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/lens.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/lensPath.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/lensProp.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/map.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/over.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/path.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/pipe.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/prop.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/reduce.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/reverse.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/set.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/slice.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/tail.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/ramda@0.26.1/node_modules/ramda/src/view.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/alpha/Alpha.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/alpha/AlphaPointer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/block/Block.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/block/BlockSwatches.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/chrome/Chrome.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/chrome/ChromeFields.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/chrome/ChromePointer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/chrome/ChromePointerCircle.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/circle/Circle.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/circle/CircleSwatch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/common/Alpha.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/common/Checkboard.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/common/ColorWrap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/common/EditableInput.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/common/Hue.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/common/Raised.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/common/Saturation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/common/Swatch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/common/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/compact/Compact.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/compact/CompactColor.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/compact/CompactFields.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/github/Github.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/github/GithubSwatch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/hue/Hue.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/hue/HuePointer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/material/Material.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/photoshop/Photoshop.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/photoshop/PhotoshopButton.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/photoshop/PhotoshopFields.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/photoshop/PhotoshopPointer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/photoshop/PhotoshopPointerCircle.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/photoshop/PhotoshopPreviews.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/sketch/Sketch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/sketch/SketchFields.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/sketch/SketchPresetColors.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/slider/Slider.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/slider/SliderPointer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/slider/SliderSwatch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/slider/SliderSwatches.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/swatches/Swatches.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/swatches/SwatchesColor.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/swatches/SwatchesGroup.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/components/twitter/Twitter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/helpers/alpha.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/helpers/checkboard.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/helpers/color.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/helpers/hue.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/helpers/interaction.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/helpers/saturation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-color@2.18.1_react@18.3.0/node_modules/react-color/lib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-onclickoutside@6.13.1_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/popper.js@1.16.1/node_modules/popper.js/dist/esm/popper.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-popper@1.3.11_react@18.3.0/node_modules/react-popper/lib/esm/Manager.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-popper@1.3.11_react@18.3.0/node_modules/react-popper/lib/esm/utils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-popper@1.3.11_react@18.3.0/node_modules/react-popper/lib/esm/Popper.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-popper@1.3.11_react@18.3.0/node_modules/react-popper/lib/esm/Reference.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-datepicker@1.8.0_moment@2.29.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-datepicker/es/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/nativeTypesConfig.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/utils/js_utils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/EnterLeaveCounter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/BrowserDetector.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/MonotonicInterpolant.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/OffsetUtils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/NativeTypes.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/getDataFromDataTransfer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/NativeDragSource.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/OptionsReader.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/HTML5BackendImpl.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd-html5-backend@14.0.2/node_modules/react-dnd-html5-backend/dist/esm/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/core/DndContext.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/interfaces.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/actions/dragDrop/types.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/actions/dragDrop/local/setClientOffset.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/utils/js_utils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/actions/dragDrop/beginDrag.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/actions/dragDrop/publishDragSource.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/utils/matchesType.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/actions/dragDrop/hover.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/actions/dragDrop/drop.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/actions/dragDrop/endDrag.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/actions/dragDrop/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/classes/DragDropManagerImpl.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/utils/equality.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/reducers/dragOffset.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/actions/registry.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/reducers/dragOperation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/reducers/refCount.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/utils/dirtiness.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/reducers/dirtyHandlerIds.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/reducers/stateId.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/reducers/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/utils/coords.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/classes/DragDropMonitorImpl.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/utils/getNextUniqueId.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/contracts.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@react-dnd+asap@4.0.1/node_modules/@react-dnd/asap/dist/esm/makeRequestCall.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@react-dnd+asap@4.0.1/node_modules/@react-dnd/asap/dist/esm/AsapQueue.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@react-dnd+asap@4.0.1/node_modules/@react-dnd/asap/dist/esm/RawTask.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@react-dnd+asap@4.0.1/node_modules/@react-dnd/asap/dist/esm/TaskFactory.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@react-dnd+asap@4.0.1/node_modules/@react-dnd/asap/dist/esm/asap.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/classes/HandlerRegistryImpl.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/dnd-core@14.0.1/node_modules/dnd-core/dist/esm/createDragDropManager.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/core/DndProvider.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useMonitorOutput.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useCollectedProps.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useCollector.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useDragDropManager.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useDrop/useAccept.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useDrop/DropTargetImpl.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useDrop/useDropTarget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useDrop/useRegisteredDropTarget.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/internals/DropTargetMonitorImpl.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useDrop/useDropTargetMonitor.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/internals/TargetConnector.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useDrop/useDropTargetConnector.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useDrop/connectors.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useDrop/useDrop.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useIsomorphicLayoutEffect.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/hooks/useOptionalFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/internals/isRef.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/internals/registration.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dnd@14.0.4_@types+hoist-non-react-statics@3.3.5_@types+node@22.7.9_@types+react@17.0.80_react@18.3.0/node_modules/react-dnd/dist/esm/internals/wrapConnectorHooks.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dom@18.3.0_react@18.3.0/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dom@18.3.0_react@18.3.0/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dom@18.3.0_react@18.3.0/node_modules/react-dom/cjs/react-dom.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dom@18.3.0_react@18.3.0/node_modules/react-dom/client.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dom@18.3.0_react@18.3.0/node_modules/react-dom/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-dom@18.3.0_react@18.3.0/node_modules/react-dom/server.browser.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-swipeable@5.5.1_react@18.3.0/node_modules/react-swipeable/es/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/resize-observer-polyfill@1.5.0/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-only-when@1.0.2_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-only-when/dist/index.es.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-elastic-carousel@0.11.5_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0_s_trpcyhwrny2rwsym32sddsf36y/node_modules/react-elastic-carousel/dist/index.es.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-google-recaptcha@1.1.0_react@18.3.0/node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-async-script@1.2.0_react@18.3.0/node_modules/react-async-script/lib/esm/async-script-loader.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-google-recaptcha@1.1.0_react@18.3.0/node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-google-recaptcha@1.1.0_react@18.3.0/node_modules/react-google-recaptcha/lib/esm/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-infinite-scroll-component@6.1.0_react@18.3.0/node_modules/react-infinite-scroll-component/dist/index.es.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-is@17.0.2/node_modules/react-is/cjs/react-is.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-is@17.0.2/node_modules/react-is/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/cjs/react-is.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-is@18.3.1/node_modules/react-is/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-lifecycles-compat@3.0.4/node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-mixin@4.0.0/node_modules/react-mixin/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/components/Modal.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/components/ModalPortal.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/helpers/bodyTrap.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/helpers/classList.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/helpers/focusManager.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/helpers/scopeTab.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/helpers/tabbable.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-modal@3.14.4_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-modal/lib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/make-event-props@1.6.2/node_modules/make-event-props/dist/esm/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/make-cancellable-promise@1.3.2/node_modules/make-cancellable-promise/dist/esm/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/merge-class-names@1.4.2/node_modules/merge-class-names/dist/esm/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/DocumentContext.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/Message.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/LinkService.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/PasswordResponses.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/shared/utils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/shared/propTypes.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/Document.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/OutlineContext.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/Ref.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/OutlineItem.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/Outline.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/merge-refs@1.3.0_@types+react@17.0.80/node_modules/merge-refs/dist/esm/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/PageContext.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/Page/PageCanvas.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/Page/PageSVG.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/Page/TextLayerItem.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/Page/TextLayer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/Page.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-pdf@5.7.2_@types+react@17.0.80_react-dom@18.3.0_react@18.3.0__react@18.3.0_webpack@5.91_5jyyqblbhjbwkto3k3b3riineq/node_modules/react-pdf/dist/esm/entry.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/components/Context.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/utils/batch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/utils/Subscription.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/components/Provider.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/components/connectAdvanced.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/utils/shallowEqual.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/utils/bindActionCreators.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/connect/mapStateToProps.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/connect/mergeProps.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/connect/selectorFactory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/connect/connect.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/hooks/useReduxContext.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/hooks/useStore.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/hooks/useDispatch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/hooks/useSelector.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-redux@7.2.6_react-dom@18.3.0_react@18.3.0__react-native@0.72.7_@babel+preset-env@7.25.9_3ksdmhmfznxbkfjts56svpqudu/node_modules/react-redux/es/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-router-dom@5.3.4_react@18.3.0/node_modules/react-router-dom/esm/react-router-dom.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-router@5.3.4_react@18.3.0/node_modules/react-router/esm/react-router.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-sortable-hoc@2.0.0_prop-types@15.7.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-sortable-hoc@2.0.0_prop-types@15.8.1_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-sortable-hoc/dist/react-sortable-hoc.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/tslib@2.8.0/node_modules/tslib/tslib.es6.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@tanem+svg-injector@10.1.68/node_modules/@tanem/svg-injector/dist/svg-injector.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-svg@14.1.1_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-svg/dist/react-svg.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-toastify@8.1.1_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-toastify/dist/react-toastify.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react-verification-input@4.1.2_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/react-verification-input/lib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react@18.3.0/node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react@18.3.0/node_modules/react/cjs/react.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react@18.3.0/node_modules/react/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/react@18.3.0/node_modules/react/jsx-runtime.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/reactcss@1.2.3_react@18.3.0/node_modules/reactcss/lib/autoprefix.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/reactcss@1.2.3_react@18.3.0/node_modules/reactcss/lib/components/active.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/reactcss@1.2.3_react@18.3.0/node_modules/reactcss/lib/components/hover.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/reactcss@1.2.3_react@18.3.0/node_modules/reactcss/lib/flattenNames.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/reactcss@1.2.3_react@18.3.0/node_modules/reactcss/lib/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/reactcss@1.2.3_react@18.3.0/node_modules/reactcss/lib/loop.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/reactcss@1.2.3_react@18.3.0/node_modules/reactcss/lib/mergeClasses.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@redux-saga+core@1.3.0/node_modules/@redux-saga/core/dist/redux-saga-core.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@redux-saga+deferred@1.2.1/node_modules/@redux-saga/deferred/dist/redux-saga-deferred.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/redux-saga@1.1.3/node_modules/redux-saga/dist/redux-saga-core-npm-proxy.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@redux-saga+core@1.3.0/node_modules/@redux-saga/core/dist/redux-saga-effects.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/redux@4.1.2/node_modules/redux/es/redux.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/regexp.prototype.flags@1.5.3/node_modules/regexp.prototype.flags/implementation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/regexp.prototype.flags@1.5.3/node_modules/regexp.prototype.flags/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/regexp.prototype.flags@1.5.3/node_modules/regexp.prototype.flags/polyfill.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/regexp.prototype.flags@1.5.3/node_modules/regexp.prototype.flags/shim.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/requires-port@1.0.0/node_modules/requires-port/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/reselect@4.1.8/node_modules/reselect/es/defaultMemoize.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/reselect@4.1.8/node_modules/reselect/es/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/resize-observer-polyfill@1.5.1/node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/set-function-name@2.0.2/node_modules/set-function-name/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/shallowequal@1.1.0/node_modules/shallowequal/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/side-channel@1.0.6/node_modules/side-channel/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/smart-mixin@2.0.0/node_modules/smart-mixin/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/string.prototype.trim@1.2.9/node_modules/string.prototype.trim/implementation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/string.prototype.trim@1.2.9/node_modules/string.prototype.trim/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/string.prototype.trim@1.2.9/node_modules/string.prototype.trim/polyfill.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/string.prototype.trim@1.2.9/node_modules/string.prototype.trim/shim.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/styled-components@5.3.3_@babel+core@7.25.9_react-dom@18.3.0_react@18.3.0__react-is@17.0.2_react@18.3.0/node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/styled-components@5.3.3_@babel+core@7.25.9_react-dom@18.3.0_react@18.3.0__react-is@18.3.1_react@18.3.0/node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/tether@1.4.7/node_modules/tether/dist/js/tether.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/tinycolor2@1.4.1/node_modules/tinycolor2/tinycolor.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/url-parse@1.5.10/node_modules/url-parse/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/url@0.11.0/node_modules/url/url.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/url@0.11.0/node_modules/url/util.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/use-debounce@5.2.0_react@18.3.0/node_modules/use-debounce/esm/useDebouncedCallback.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.0/node_modules/use-sync-external-store/shim/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.0/node_modules/use-sync-external-store/shim/with-selector.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/utf8@3.0.0/node_modules/utf8/utf8.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/rng.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/native.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/stringify.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v4.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/warning@4.0.3/node_modules/warning/warning.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/web-streams-polyfill@3.3.3/node_modules/web-streams-polyfill/dist/ponyfill.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/es-abstract@1.23.3/node_modules/es-abstract/2024/ToString.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@babel+runtime@7.24.7/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@headlessui+react@1.5.0_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@headlessui/react/dist/headlessui.esm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/debug-build.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/helpers.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/integrations/contextlines.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/polyfills/interactionCountPolyfill.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/instrument.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/browserMetrics.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/logSpans.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/sampling.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/sentryNonRecordingSpan.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/measurement.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/utils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/sentrySpan.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/trace.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/buildPolyfills/_optionalChain.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/bindReporter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/generateUniqueID.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getNavigationEntry.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getActivationStart.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/initMetric.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/observe.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/onHidden.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/runOnce.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/getVisibilityWatcher.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/lib/whenActivated.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onFCP.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getCLS.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getFID.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getINP.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/getLCP.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/web-vitals/onTTFB.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/utils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/cls.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/metrics/inp.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/idleSpan.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/errors.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/tracing/backgroundtab.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/fetch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/tracing/request.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/tracing/browserTracingIntegration.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/defaultScopes.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/asyncContext/stackStrategy.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/asyncContext/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/breadcrumbs.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/carrier.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/constants.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/currentScopes.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/debug-build.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/envelope.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/exports.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/integration.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/integrations/captureconsole.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/integrations/extraerrordata.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/metrics/metric-summary.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/scope.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/semanticAttributes.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/session.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/dynamicSamplingContext.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/tracing/spanstatus.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/utils/hasTracingEnabled.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/utils/parseSampleRate.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/eventProcessors.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/utils/applyScopeDataToEvent.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/utils/prepareEvent.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/utils/spanOnScope.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/utils/spanUtils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+fullstory@3.0.0_@sentry+core@8.34.0/node_modules/@sentry/fullstory/dist/es/index.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+react@8.34.0_react@18.3.0/node_modules/@sentry/react/build/esm/redux.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/integrations/functiontostring.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/instrument/dom.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/integrations/inboundfilters.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/integrations/dedupe.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/sdk.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/error.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/clientreport.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/api.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/baseclient.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/utils/sdkMetadata.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/env.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/eventbuilder.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/userfeedback.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/client.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/breadcrumb-log-level.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/integrations/breadcrumbs.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/integrations/browserapierrors.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/integrations/globalhandlers.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/integrations/httpcontext.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/aggregate-errors.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/integrations/linkederrors.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/stack-parsers.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/getNativeImplementation.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/promisebuffer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/ratelimit.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+core@8.34.0/node_modules/@sentry/core/build/esm/transports/base.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/transports/fetch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+browser@8.34.0/node_modules/@sentry/browser/build/npm/esm/sdk.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+react@8.34.0_react@18.3.0/node_modules/@sentry/react/build/esm/sdk.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/baggage.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/browser.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/debug-build.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/dsn.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/envelope.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/instrument/console.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/instrument/fetch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/instrument/globalError.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/instrument/globalUnhandledRejection.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/instrument/handlers.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/is.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/logger.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/misc.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/memo.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/normalize.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/object.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/propagationContext.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/severity.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/stacktrace.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/string.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/supports.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/syncpromise.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/time.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/tracing.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/url.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/version.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/worldwide.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/debug-build.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/instrument/history.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry+utils@8.34.0/node_modules/@sentry/utils/build/esm/vendor/supportsHistory.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/instrument/xhr.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@sentry-internal+browser-utils@8.34.0/node_modules/@sentry-internal/browser-utils/build/esm/types.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_define_property.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_extends.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_object_destructuring_empty.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_object_spread.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_object_spread_props.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_object_without_properties_loose.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_object_without_properties.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_type_of.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_to_primitive.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@swc+helpers@0.5.12/node_modules/@swc/helpers/esm/_to_property_key.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@xyflow+react@12.0.4_@types+react@17.0.80_immer@9.0.19_react-dom@18.3.0_react@18.3.0__react@18.3.0/node_modules/@xyflow/react/dist/esm/index.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/classcat@5.0.5/node_modules/classcat/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/zustand@4.5.0_@types+react@17.0.80_immer@9.0.19_react@18.3.0/node_modules/zustand/esm/vanilla.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/zustand@4.5.0_@types+react@17.0.80_immer@9.0.19_react@18.3.0/node_modules/zustand/esm/traditional.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/zustand@4.5.0_@types+react@17.0.80_immer@9.0.19_react@18.3.0/node_modules/zustand/esm/shallow.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/@xyflow+system@0.0.37/node_modules/@xyflow/system/dist/esm/index.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selector.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/select.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/array.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selectorAll.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectAll.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/matcher.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChild.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/selectChildren.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/filter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sparse.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/enter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/data.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/exit.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/join.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/merge.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/order.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/sort.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/call.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/nodes.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/node.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/empty.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/each.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespaces.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/namespace.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/attr.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/window.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/style.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/property.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/classed.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/text.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/html.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/raise.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/lower.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/creator.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/append.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/insert.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/remove.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/clone.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/datum.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/dispatch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/iterator.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/select.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/sourceEvent.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/pointer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-drag@3.0.0/node_modules/d3-drag/src/noevent.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-drag@3.0.0/node_modules/d3-drag/src/nodrag.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-drag@3.0.0/node_modules/d3-drag/src/constant.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-drag@3.0.0/node_modules/d3-drag/src/event.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-drag@3.0.0/node_modules/d3-drag/src/drag.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/zoom.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/schedule.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/interrupt.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/interrupt.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/tween.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basis.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basisClosed.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attr.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/delay.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/duration.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/ease.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/easeVarying.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/filter.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/merge.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/on.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/remove.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/select.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selectAll.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/style.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/styleTween.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/text.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/textTween.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/transition.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/end.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/constant.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/event.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/transform.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/noevent.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/zoom.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/utils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/platform/common/utils.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/adapters/fetch.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/bind.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/core/AxiosError.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/null.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/toFormData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/buildURL.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/core/InterceptorManager.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/defaults/transitional.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/platform/browser/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/platform/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/formDataToJSON.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/defaults/index.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/parseHeaders.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/core/AxiosHeaders.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/core/transformData.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/cancel/isCancel.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/cancel/CanceledError.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/core/settle.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/parseProtocol.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/speedometer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/throttle.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/progressEventReducer.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/cookies.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/combineURLs.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/core/buildFullPath.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/core/mergeConfig.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/resolveConfig.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/adapters/xhr.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/composeSignals.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/trackStream.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/adapters/adapters.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/core/dispatchRequest.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/env/data.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/validator.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/core/Axios.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/cancel/CancelToken.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/spread.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/isAxiosError.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/axios.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/clsx@2.0.0/node_modules/clsx/dist/clsx.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/class-variance-authority@0.7.0/node_modules/class-variance-authority/dist/index.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/nanoid@4.0.2/node_modules/nanoid/index.browser.js","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/swiper@11.0.5/node_modules/swiper/shared/swiper-core.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/swiper@11.0.5/node_modules/swiper/shared/ssr-window.esm.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/swiper@11.0.5/node_modules/swiper/shared/utils.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/swiper@11.0.5/node_modules/swiper/shared/update-swiper.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/swiper@11.0.5/node_modules/swiper/shared/update-on-virtual-data.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/swiper@11.0.5/node_modules/swiper/swiper-react.mjs","webpack://@jotforminc/workflow/../../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js"],"sourcesContent":["/*\nCopyright (c) 2012-2014 Chris Pettitt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nmodule.exports = {\n graphlib: require(\"@dagrejs/graphlib\"),\n\n layout: require(\"./lib/layout\"),\n debug: require(\"./lib/debug\"),\n util: {\n time: require(\"./lib/util\").time,\n notime: require(\"./lib/util\").notime\n },\n version: require(\"./lib/version\")\n};\n","\"use strict\";\n\nlet greedyFAS = require(\"./greedy-fas\");\nlet uniqueId = require(\"./util\").uniqueId;\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\nfunction run(g) {\n let fas = (g.graph().acyclicer === \"greedy\"\n ? greedyFAS(g, weightFn(g))\n : dfsFAS(g));\n fas.forEach(e => {\n let label = g.edge(e);\n g.removeEdge(e);\n label.forwardName = e.name;\n label.reversed = true;\n g.setEdge(e.w, e.v, label, uniqueId(\"rev\"));\n });\n\n function weightFn(g) {\n return e => {\n return g.edge(e).weight;\n };\n }\n}\n\nfunction dfsFAS(g) {\n let fas = [];\n let stack = {};\n let visited = {};\n\n function dfs(v) {\n if (Object.hasOwn(visited, v)) {\n return;\n }\n visited[v] = true;\n stack[v] = true;\n g.outEdges(v).forEach(e => {\n if (Object.hasOwn(stack, e.w)) {\n fas.push(e);\n } else {\n dfs(e.w);\n }\n });\n delete stack[v];\n }\n\n g.nodes().forEach(dfs);\n return fas;\n}\n\nfunction undo(g) {\n g.edges().forEach(e => {\n let label = g.edge(e);\n if (label.reversed) {\n g.removeEdge(e);\n\n let forwardName = label.forwardName;\n delete label.reversed;\n delete label.forwardName;\n g.setEdge(e.w, e.v, label, forwardName);\n }\n });\n}\n","let util = require(\"./util\");\n\nmodule.exports = addBorderSegments;\n\nfunction addBorderSegments(g) {\n function dfs(v) {\n let children = g.children(v);\n let node = g.node(v);\n if (children.length) {\n children.forEach(dfs);\n }\n\n if (Object.hasOwn(node, \"minRank\")) {\n node.borderLeft = [];\n node.borderRight = [];\n for (let rank = node.minRank, maxRank = node.maxRank + 1;\n rank < maxRank;\n ++rank) {\n addBorderNode(g, \"borderLeft\", \"_bl\", v, node, rank);\n addBorderNode(g, \"borderRight\", \"_br\", v, node, rank);\n }\n }\n }\n\n g.children().forEach(dfs);\n}\n\nfunction addBorderNode(g, prop, prefix, sg, sgNode, rank) {\n let label = { width: 0, height: 0, rank: rank, borderType: prop };\n let prev = sgNode[prop][rank - 1];\n let curr = util.addDummyNode(g, \"border\", label, prefix);\n sgNode[prop][rank] = curr;\n g.setParent(curr, sg);\n if (prev) {\n g.setEdge(prev, curr, { weight: 1 });\n }\n}\n","\"use strict\";\n\nmodule.exports = {\n adjust: adjust,\n undo: undo\n};\n\nfunction adjust(g) {\n let rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapWidthHeight(g);\n }\n}\n\nfunction undo(g) {\n let rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"bt\" || rankDir === \"rl\") {\n reverseY(g);\n }\n\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapXY(g);\n swapWidthHeight(g);\n }\n}\n\nfunction swapWidthHeight(g) {\n g.nodes().forEach(v => swapWidthHeightOne(g.node(v)));\n g.edges().forEach(e => swapWidthHeightOne(g.edge(e)));\n}\n\nfunction swapWidthHeightOne(attrs) {\n let w = attrs.width;\n attrs.width = attrs.height;\n attrs.height = w;\n}\n\nfunction reverseY(g) {\n g.nodes().forEach(v => reverseYOne(g.node(v)));\n\n g.edges().forEach(e => {\n let edge = g.edge(e);\n edge.points.forEach(reverseYOne);\n if (Object.hasOwn(edge, \"y\")) {\n reverseYOne(edge);\n }\n });\n}\n\nfunction reverseYOne(attrs) {\n attrs.y = -attrs.y;\n}\n\nfunction swapXY(g) {\n g.nodes().forEach(v => swapXYOne(g.node(v)));\n\n g.edges().forEach(e => {\n let edge = g.edge(e);\n edge.points.forEach(swapXYOne);\n if (Object.hasOwn(edge, \"x\")) {\n swapXYOne(edge);\n }\n });\n}\n\nfunction swapXYOne(attrs) {\n let x = attrs.x;\n attrs.x = attrs.y;\n attrs.y = x;\n}\n","/*\n * Simple doubly linked list implementation derived from Cormen, et al.,\n * \"Introduction to Algorithms\".\n */\n\nclass List {\n constructor() {\n let sentinel = {};\n sentinel._next = sentinel._prev = sentinel;\n this._sentinel = sentinel;\n }\n\n dequeue() {\n let sentinel = this._sentinel;\n let entry = sentinel._prev;\n if (entry !== sentinel) {\n unlink(entry);\n return entry;\n }\n }\n\n enqueue(entry) {\n let sentinel = this._sentinel;\n if (entry._prev && entry._next) {\n unlink(entry);\n }\n entry._next = sentinel._next;\n sentinel._next._prev = entry;\n sentinel._next = entry;\n entry._prev = sentinel;\n }\n\n toString() {\n let strs = [];\n let sentinel = this._sentinel;\n let curr = sentinel._prev;\n while (curr !== sentinel) {\n strs.push(JSON.stringify(curr, filterOutLinks));\n curr = curr._prev;\n }\n return \"[\" + strs.join(\", \") + \"]\";\n }\n}\n\nfunction unlink(entry) {\n entry._prev._next = entry._next;\n entry._next._prev = entry._prev;\n delete entry._next;\n delete entry._prev;\n}\n\nfunction filterOutLinks(k, v) {\n if (k !== \"_next\" && k !== \"_prev\") {\n return v;\n }\n}\n\nmodule.exports = List;\n","let util = require(\"./util\");\nlet Graph = require(\"@dagrejs/graphlib\").Graph;\n\nmodule.exports = {\n debugOrdering: debugOrdering\n};\n\n/* istanbul ignore next */\nfunction debugOrdering(g) {\n let layerMatrix = util.buildLayerMatrix(g);\n\n let h = new Graph({ compound: true, multigraph: true }).setGraph({});\n\n g.nodes().forEach(v => {\n h.setNode(v, { label: v });\n h.setParent(v, \"layer\" + g.node(v).rank);\n });\n\n g.edges().forEach(e => h.setEdge(e.v, e.w, {}, e.name));\n\n layerMatrix.forEach((layer, i) => {\n let layerV = \"layer\" + i;\n h.setNode(layerV, { rank: \"same\" });\n layer.reduce((u, v) => {\n h.setEdge(u, v, { style: \"invis\" });\n return v;\n });\n });\n\n return h;\n}\n","let Graph = require(\"@dagrejs/graphlib\").Graph;\nlet List = require(\"./data/list\");\n\n/*\n * A greedy heuristic for finding a feedback arc set for a graph. A feedback\n * arc set is a set of edges that can be removed to make a graph acyclic.\n * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, \"A fast and\n * effective heuristic for the feedback arc set problem.\" This implementation\n * adjusts that from the paper to allow for weighted edges.\n */\nmodule.exports = greedyFAS;\n\nlet DEFAULT_WEIGHT_FN = () => 1;\n\nfunction greedyFAS(g, weightFn) {\n if (g.nodeCount() <= 1) {\n return [];\n }\n let state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);\n let results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);\n\n // Expand multi-edges\n return results.flatMap(e => g.outEdges(e.v, e.w));\n}\n\nfunction doGreedyFAS(g, buckets, zeroIdx) {\n let results = [];\n let sources = buckets[buckets.length - 1];\n let sinks = buckets[0];\n\n let entry;\n while (g.nodeCount()) {\n while ((entry = sinks.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n while ((entry = sources.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n if (g.nodeCount()) {\n for (let i = buckets.length - 2; i > 0; --i) {\n entry = buckets[i].dequeue();\n if (entry) {\n results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));\n break;\n }\n }\n }\n }\n\n return results;\n}\n\nfunction removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {\n let results = collectPredecessors ? [] : undefined;\n\n g.inEdges(entry.v).forEach(edge => {\n let weight = g.edge(edge);\n let uEntry = g.node(edge.v);\n\n if (collectPredecessors) {\n results.push({ v: edge.v, w: edge.w });\n }\n\n uEntry.out -= weight;\n assignBucket(buckets, zeroIdx, uEntry);\n });\n\n g.outEdges(entry.v).forEach(edge => {\n let weight = g.edge(edge);\n let w = edge.w;\n let wEntry = g.node(w);\n wEntry[\"in\"] -= weight;\n assignBucket(buckets, zeroIdx, wEntry);\n });\n\n g.removeNode(entry.v);\n\n return results;\n}\n\nfunction buildState(g, weightFn) {\n let fasGraph = new Graph();\n let maxIn = 0;\n let maxOut = 0;\n\n g.nodes().forEach(v => {\n fasGraph.setNode(v, { v: v, \"in\": 0, out: 0 });\n });\n\n // Aggregate weights on nodes, but also sum the weights across multi-edges\n // into a single edge for the fasGraph.\n g.edges().forEach(e => {\n let prevWeight = fasGraph.edge(e.v, e.w) || 0;\n let weight = weightFn(e);\n let edgeWeight = prevWeight + weight;\n fasGraph.setEdge(e.v, e.w, edgeWeight);\n maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);\n maxIn = Math.max(maxIn, fasGraph.node(e.w)[\"in\"] += weight);\n });\n\n let buckets = range(maxOut + maxIn + 3).map(() => new List());\n let zeroIdx = maxIn + 1;\n\n fasGraph.nodes().forEach(v => {\n assignBucket(buckets, zeroIdx, fasGraph.node(v));\n });\n\n return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };\n}\n\nfunction assignBucket(buckets, zeroIdx, entry) {\n if (!entry.out) {\n buckets[0].enqueue(entry);\n } else if (!entry[\"in\"]) {\n buckets[buckets.length - 1].enqueue(entry);\n } else {\n buckets[entry.out - entry[\"in\"] + zeroIdx].enqueue(entry);\n }\n}\n\nfunction range(limit) {\n const range = [];\n for (let i = 0; i < limit; i++) {\n range.push(i);\n }\n\n return range;\n}\n","\"use strict\";\n\nlet acyclic = require(\"./acyclic\");\nlet normalize = require(\"./normalize\");\nlet rank = require(\"./rank\");\nlet normalizeRanks = require(\"./util\").normalizeRanks;\nlet parentDummyChains = require(\"./parent-dummy-chains\");\nlet removeEmptyRanks = require(\"./util\").removeEmptyRanks;\nlet nestingGraph = require(\"./nesting-graph\");\nlet addBorderSegments = require(\"./add-border-segments\");\nlet coordinateSystem = require(\"./coordinate-system\");\nlet order = require(\"./order\");\nlet position = require(\"./position\");\nlet util = require(\"./util\");\nlet Graph = require(\"@dagrejs/graphlib\").Graph;\n\nmodule.exports = layout;\n\nfunction layout(g, opts) {\n let time = opts && opts.debugTiming ? util.time : util.notime;\n time(\"layout\", () => {\n let layoutGraph =\n time(\" buildLayoutGraph\", () => buildLayoutGraph(g));\n time(\" runLayout\", () => runLayout(layoutGraph, time, opts));\n time(\" updateInputGraph\", () => updateInputGraph(g, layoutGraph));\n });\n}\n\nfunction runLayout(g, time, opts) {\n time(\" makeSpaceForEdgeLabels\", () => makeSpaceForEdgeLabels(g));\n time(\" removeSelfEdges\", () => removeSelfEdges(g));\n time(\" acyclic\", () => acyclic.run(g));\n time(\" nestingGraph.run\", () => nestingGraph.run(g));\n time(\" rank\", () => rank(util.asNonCompoundGraph(g)));\n time(\" injectEdgeLabelProxies\", () => injectEdgeLabelProxies(g));\n time(\" removeEmptyRanks\", () => removeEmptyRanks(g));\n time(\" nestingGraph.cleanup\", () => nestingGraph.cleanup(g));\n time(\" normalizeRanks\", () => normalizeRanks(g));\n time(\" assignRankMinMax\", () => assignRankMinMax(g));\n time(\" removeEdgeLabelProxies\", () => removeEdgeLabelProxies(g));\n time(\" normalize.run\", () => normalize.run(g));\n time(\" parentDummyChains\", () => parentDummyChains(g));\n time(\" addBorderSegments\", () => addBorderSegments(g));\n time(\" order\", () => order(g, opts));\n time(\" insertSelfEdges\", () => insertSelfEdges(g));\n time(\" adjustCoordinateSystem\", () => coordinateSystem.adjust(g));\n time(\" position\", () => position(g));\n time(\" positionSelfEdges\", () => positionSelfEdges(g));\n time(\" removeBorderNodes\", () => removeBorderNodes(g));\n time(\" normalize.undo\", () => normalize.undo(g));\n time(\" fixupEdgeLabelCoords\", () => fixupEdgeLabelCoords(g));\n time(\" undoCoordinateSystem\", () => coordinateSystem.undo(g));\n time(\" translateGraph\", () => translateGraph(g));\n time(\" assignNodeIntersects\", () => assignNodeIntersects(g));\n time(\" reversePoints\", () => reversePointsForReversedEdges(g));\n time(\" acyclic.undo\", () => acyclic.undo(g));\n}\n\n/*\n * Copies final layout information from the layout graph back to the input\n * graph. This process only copies whitelisted attributes from the layout graph\n * to the input graph, so it serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction updateInputGraph(inputGraph, layoutGraph) {\n inputGraph.nodes().forEach(v => {\n let inputLabel = inputGraph.node(v);\n let layoutLabel = layoutGraph.node(v);\n\n if (inputLabel) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n inputLabel.rank = layoutLabel.rank;\n\n if (layoutGraph.children(v).length) {\n inputLabel.width = layoutLabel.width;\n inputLabel.height = layoutLabel.height;\n }\n }\n });\n\n inputGraph.edges().forEach(e => {\n let inputLabel = inputGraph.edge(e);\n let layoutLabel = layoutGraph.edge(e);\n\n inputLabel.points = layoutLabel.points;\n if (Object.hasOwn(layoutLabel, \"x\")) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n }\n });\n\n inputGraph.graph().width = layoutGraph.graph().width;\n inputGraph.graph().height = layoutGraph.graph().height;\n}\n\nlet graphNumAttrs = [\"nodesep\", \"edgesep\", \"ranksep\", \"marginx\", \"marginy\"];\nlet graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: \"tb\" };\nlet graphAttrs = [\"acyclicer\", \"ranker\", \"rankdir\", \"align\"];\nlet nodeNumAttrs = [\"width\", \"height\"];\nlet nodeDefaults = { width: 0, height: 0 };\nlet edgeNumAttrs = [\"minlen\", \"weight\", \"width\", \"height\", \"labeloffset\"];\nlet edgeDefaults = {\n minlen: 1, weight: 1, width: 0, height: 0,\n labeloffset: 10, labelpos: \"r\"\n};\nlet edgeAttrs = [\"labelpos\"];\n\n/*\n * Constructs a new graph from the input graph, which can be used for layout.\n * This process copies only whitelisted attributes from the input graph to the\n * layout graph. Thus this function serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction buildLayoutGraph(inputGraph) {\n let g = new Graph({ multigraph: true, compound: true });\n let graph = canonicalize(inputGraph.graph());\n\n g.setGraph(Object.assign({},\n graphDefaults,\n selectNumberAttrs(graph, graphNumAttrs),\n util.pick(graph, graphAttrs)));\n\n inputGraph.nodes().forEach(v => {\n let node = canonicalize(inputGraph.node(v));\n const newNode = selectNumberAttrs(node, nodeNumAttrs);\n Object.keys(nodeDefaults).forEach(k => {\n if (newNode[k] === undefined) {\n newNode[k] = nodeDefaults[k];\n }\n });\n\n g.setNode(v, newNode);\n g.setParent(v, inputGraph.parent(v));\n });\n\n inputGraph.edges().forEach(e => {\n let edge = canonicalize(inputGraph.edge(e));\n g.setEdge(e, Object.assign({},\n edgeDefaults,\n selectNumberAttrs(edge, edgeNumAttrs),\n util.pick(edge, edgeAttrs)));\n });\n\n return g;\n}\n\n/*\n * This idea comes from the Gansner paper: to account for edge labels in our\n * layout we split each rank in half by doubling minlen and halving ranksep.\n * Then we can place labels at these mid-points between nodes.\n *\n * We also add some minimal padding to the width to push the label for the edge\n * away from the edge itself a bit.\n */\nfunction makeSpaceForEdgeLabels(g) {\n let graph = g.graph();\n graph.ranksep /= 2;\n g.edges().forEach(e => {\n let edge = g.edge(e);\n edge.minlen *= 2;\n if (edge.labelpos.toLowerCase() !== \"c\") {\n if (graph.rankdir === \"TB\" || graph.rankdir === \"BT\") {\n edge.width += edge.labeloffset;\n } else {\n edge.height += edge.labeloffset;\n }\n }\n });\n}\n\n/*\n * Creates temporary dummy nodes that capture the rank in which each edge's\n * label is going to, if it has one of non-zero width and height. We do this\n * so that we can safely remove empty ranks while preserving balance for the\n * label's position.\n */\nfunction injectEdgeLabelProxies(g) {\n g.edges().forEach(e => {\n let edge = g.edge(e);\n if (edge.width && edge.height) {\n let v = g.node(e.v);\n let w = g.node(e.w);\n let label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };\n util.addDummyNode(g, \"edge-proxy\", label, \"_ep\");\n }\n });\n}\n\nfunction assignRankMinMax(g) {\n let maxRank = 0;\n g.nodes().forEach(v => {\n let node = g.node(v);\n if (node.borderTop) {\n node.minRank = g.node(node.borderTop).rank;\n node.maxRank = g.node(node.borderBottom).rank;\n maxRank = Math.max(maxRank, node.maxRank);\n }\n });\n g.graph().maxRank = maxRank;\n}\n\nfunction removeEdgeLabelProxies(g) {\n g.nodes().forEach(v => {\n let node = g.node(v);\n if (node.dummy === \"edge-proxy\") {\n g.edge(node.e).labelRank = node.rank;\n g.removeNode(v);\n }\n });\n}\n\nfunction translateGraph(g) {\n let minX = Number.POSITIVE_INFINITY;\n let maxX = 0;\n let minY = Number.POSITIVE_INFINITY;\n let maxY = 0;\n let graphLabel = g.graph();\n let marginX = graphLabel.marginx || 0;\n let marginY = graphLabel.marginy || 0;\n\n function getExtremes(attrs) {\n let x = attrs.x;\n let y = attrs.y;\n let w = attrs.width;\n let h = attrs.height;\n minX = Math.min(minX, x - w / 2);\n maxX = Math.max(maxX, x + w / 2);\n minY = Math.min(minY, y - h / 2);\n maxY = Math.max(maxY, y + h / 2);\n }\n\n g.nodes().forEach(v => getExtremes(g.node(v)));\n g.edges().forEach(e => {\n let edge = g.edge(e);\n if (Object.hasOwn(edge, \"x\")) {\n getExtremes(edge);\n }\n });\n\n minX -= marginX;\n minY -= marginY;\n\n g.nodes().forEach(v => {\n let node = g.node(v);\n node.x -= minX;\n node.y -= minY;\n });\n\n g.edges().forEach(e => {\n let edge = g.edge(e);\n edge.points.forEach(p => {\n p.x -= minX;\n p.y -= minY;\n });\n if (Object.hasOwn(edge, \"x\")) { edge.x -= minX; }\n if (Object.hasOwn(edge, \"y\")) { edge.y -= minY; }\n });\n\n graphLabel.width = maxX - minX + marginX;\n graphLabel.height = maxY - minY + marginY;\n}\n\nfunction assignNodeIntersects(g) {\n g.edges().forEach(e => {\n let edge = g.edge(e);\n let nodeV = g.node(e.v);\n let nodeW = g.node(e.w);\n let p1, p2;\n if (!edge.points) {\n edge.points = [];\n p1 = nodeW;\n p2 = nodeV;\n } else {\n p1 = edge.points[0];\n p2 = edge.points[edge.points.length - 1];\n }\n edge.points.unshift(util.intersectRect(nodeV, p1));\n edge.points.push(util.intersectRect(nodeW, p2));\n });\n}\n\nfunction fixupEdgeLabelCoords(g) {\n g.edges().forEach(e => {\n let edge = g.edge(e);\n if (Object.hasOwn(edge, \"x\")) {\n if (edge.labelpos === \"l\" || edge.labelpos === \"r\") {\n edge.width -= edge.labeloffset;\n }\n switch (edge.labelpos) {\n case \"l\": edge.x -= edge.width / 2 + edge.labeloffset; break;\n case \"r\": edge.x += edge.width / 2 + edge.labeloffset; break;\n }\n }\n });\n}\n\nfunction reversePointsForReversedEdges(g) {\n g.edges().forEach(e => {\n let edge = g.edge(e);\n if (edge.reversed) {\n edge.points.reverse();\n }\n });\n}\n\nfunction removeBorderNodes(g) {\n g.nodes().forEach(v => {\n if (g.children(v).length) {\n let node = g.node(v);\n let t = g.node(node.borderTop);\n let b = g.node(node.borderBottom);\n let l = g.node(node.borderLeft[node.borderLeft.length - 1]);\n let r = g.node(node.borderRight[node.borderRight.length - 1]);\n\n node.width = Math.abs(r.x - l.x);\n node.height = Math.abs(b.y - t.y);\n node.x = l.x + node.width / 2;\n node.y = t.y + node.height / 2;\n }\n });\n\n g.nodes().forEach(v => {\n if (g.node(v).dummy === \"border\") {\n g.removeNode(v);\n }\n });\n}\n\nfunction removeSelfEdges(g) {\n g.edges().forEach(e => {\n if (e.v === e.w) {\n var node = g.node(e.v);\n if (!node.selfEdges) {\n node.selfEdges = [];\n }\n node.selfEdges.push({ e: e, label: g.edge(e) });\n g.removeEdge(e);\n }\n });\n}\n\nfunction insertSelfEdges(g) {\n var layers = util.buildLayerMatrix(g);\n layers.forEach(layer => {\n var orderShift = 0;\n layer.forEach((v, i) => {\n var node = g.node(v);\n node.order = i + orderShift;\n (node.selfEdges || []).forEach(selfEdge => {\n util.addDummyNode(g, \"selfedge\", {\n width: selfEdge.label.width,\n height: selfEdge.label.height,\n rank: node.rank,\n order: i + (++orderShift),\n e: selfEdge.e,\n label: selfEdge.label\n }, \"_se\");\n });\n delete node.selfEdges;\n });\n });\n}\n\nfunction positionSelfEdges(g) {\n g.nodes().forEach(v => {\n var node = g.node(v);\n if (node.dummy === \"selfedge\") {\n var selfNode = g.node(node.e.v);\n var x = selfNode.x + selfNode.width / 2;\n var y = selfNode.y;\n var dx = node.x - x;\n var dy = selfNode.height / 2;\n g.setEdge(node.e, node.label);\n g.removeNode(v);\n node.label.points = [\n { x: x + 2 * dx / 3, y: y - dy },\n { x: x + 5 * dx / 6, y: y - dy },\n { x: x + dx , y: y },\n { x: x + 5 * dx / 6, y: y + dy },\n { x: x + 2 * dx / 3, y: y + dy }\n ];\n node.label.x = node.x;\n node.label.y = node.y;\n }\n });\n}\n\nfunction selectNumberAttrs(obj, attrs) {\n return util.mapValues(util.pick(obj, attrs), Number);\n}\n\nfunction canonicalize(attrs) {\n var newAttrs = {};\n if (attrs) {\n Object.entries(attrs).forEach(([k, v]) => {\n if (typeof k === \"string\") {\n k = k.toLowerCase();\n }\n\n newAttrs[k] = v;\n });\n }\n return newAttrs;\n}\n","let util = require(\"./util\");\n\nmodule.exports = {\n run,\n cleanup,\n};\n\n/*\n * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,\n * adds appropriate edges to ensure that all cluster nodes are placed between\n * these boundaries, and ensures that the graph is connected.\n *\n * In addition we ensure, through the use of the minlen property, that nodes\n * and subgraph border nodes to not end up on the same rank.\n *\n * Preconditions:\n *\n * 1. Input graph is a DAG\n * 2. Nodes in the input graph has a minlen attribute\n *\n * Postconditions:\n *\n * 1. Input graph is connected.\n * 2. Dummy nodes are added for the tops and bottoms of subgraphs.\n * 3. The minlen attribute for nodes is adjusted to ensure nodes do not\n * get placed on the same rank as subgraph border nodes.\n *\n * The nesting graph idea comes from Sander, \"Layout of Compound Directed\n * Graphs.\"\n */\nfunction run(g) {\n let root = util.addDummyNode(g, \"root\", {}, \"_root\");\n let depths = treeDepths(g);\n let depthsArr = Object.values(depths);\n let height = util.applyWithChunking(Math.max, depthsArr) - 1; // Note: depths is an Object not an array\n let nodeSep = 2 * height + 1;\n\n g.graph().nestingRoot = root;\n\n // Multiply minlen by nodeSep to align nodes on non-border ranks.\n g.edges().forEach(e => g.edge(e).minlen *= nodeSep);\n\n // Calculate a weight that is sufficient to keep subgraphs vertically compact\n let weight = sumWeights(g) + 1;\n\n // Create border nodes and link them up\n g.children().forEach(child => dfs(g, root, nodeSep, weight, height, depths, child));\n\n // Save the multiplier for node layers for later removal of empty border\n // layers.\n g.graph().nodeRankFactor = nodeSep;\n}\n\nfunction dfs(g, root, nodeSep, weight, height, depths, v) {\n let children = g.children(v);\n if (!children.length) {\n if (v !== root) {\n g.setEdge(root, v, { weight: 0, minlen: nodeSep });\n }\n return;\n }\n\n let top = util.addBorderNode(g, \"_bt\");\n let bottom = util.addBorderNode(g, \"_bb\");\n let label = g.node(v);\n\n g.setParent(top, v);\n label.borderTop = top;\n g.setParent(bottom, v);\n label.borderBottom = bottom;\n\n children.forEach(child => {\n dfs(g, root, nodeSep, weight, height, depths, child);\n\n let childNode = g.node(child);\n let childTop = childNode.borderTop ? childNode.borderTop : child;\n let childBottom = childNode.borderBottom ? childNode.borderBottom : child;\n let thisWeight = childNode.borderTop ? weight : 2 * weight;\n let minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;\n\n g.setEdge(top, childTop, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n\n g.setEdge(childBottom, bottom, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n });\n\n if (!g.parent(v)) {\n g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });\n }\n}\n\nfunction treeDepths(g) {\n var depths = {};\n function dfs(v, depth) {\n var children = g.children(v);\n if (children && children.length) {\n children.forEach(child => dfs(child, depth + 1));\n }\n depths[v] = depth;\n }\n g.children().forEach(v => dfs(v, 1));\n return depths;\n}\n\nfunction sumWeights(g) {\n return g.edges().reduce((acc, e) => acc + g.edge(e).weight, 0);\n}\n\nfunction cleanup(g) {\n var graphLabel = g.graph();\n g.removeNode(graphLabel.nestingRoot);\n delete graphLabel.nestingRoot;\n g.edges().forEach(e => {\n var edge = g.edge(e);\n if (edge.nestingEdge) {\n g.removeEdge(e);\n }\n });\n}\n","\"use strict\";\n\nlet util = require(\"./util\");\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\n/*\n * Breaks any long edges in the graph into short segments that span 1 layer\n * each. This operation is undoable with the denormalize function.\n *\n * Pre-conditions:\n *\n * 1. The input graph is a DAG.\n * 2. Each node in the graph has a \"rank\" property.\n *\n * Post-condition:\n *\n * 1. All edges in the graph have a length of 1.\n * 2. Dummy nodes are added where edges have been split into segments.\n * 3. The graph is augmented with a \"dummyChains\" attribute which contains\n * the first dummy in each chain of dummy nodes produced.\n */\nfunction run(g) {\n g.graph().dummyChains = [];\n g.edges().forEach(edge => normalizeEdge(g, edge));\n}\n\nfunction normalizeEdge(g, e) {\n let v = e.v;\n let vRank = g.node(v).rank;\n let w = e.w;\n let wRank = g.node(w).rank;\n let name = e.name;\n let edgeLabel = g.edge(e);\n let labelRank = edgeLabel.labelRank;\n\n if (wRank === vRank + 1) return;\n\n g.removeEdge(e);\n\n let dummy, attrs, i;\n for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {\n edgeLabel.points = [];\n attrs = {\n width: 0, height: 0,\n edgeLabel: edgeLabel, edgeObj: e,\n rank: vRank\n };\n dummy = util.addDummyNode(g, \"edge\", attrs, \"_d\");\n if (vRank === labelRank) {\n attrs.width = edgeLabel.width;\n attrs.height = edgeLabel.height;\n attrs.dummy = \"edge-label\";\n attrs.labelpos = edgeLabel.labelpos;\n }\n g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);\n if (i === 0) {\n g.graph().dummyChains.push(dummy);\n }\n v = dummy;\n }\n\n g.setEdge(v, w, { weight: edgeLabel.weight }, name);\n}\n\nfunction undo(g) {\n g.graph().dummyChains.forEach(v => {\n let node = g.node(v);\n let origLabel = node.edgeLabel;\n let w;\n g.setEdge(node.edgeObj, origLabel);\n while (node.dummy) {\n w = g.successors(v)[0];\n g.removeNode(v);\n origLabel.points.push({ x: node.x, y: node.y });\n if (node.dummy === \"edge-label\") {\n origLabel.x = node.x;\n origLabel.y = node.y;\n origLabel.width = node.width;\n origLabel.height = node.height;\n }\n v = w;\n node = g.node(v);\n }\n });\n}\n","module.exports = addSubgraphConstraints;\n\nfunction addSubgraphConstraints(g, cg, vs) {\n let prev = {},\n rootPrev;\n\n vs.forEach(v => {\n let child = g.parent(v),\n parent,\n prevChild;\n while (child) {\n parent = g.parent(child);\n if (parent) {\n prevChild = prev[parent];\n prev[parent] = child;\n } else {\n prevChild = rootPrev;\n rootPrev = child;\n }\n if (prevChild && prevChild !== child) {\n cg.setEdge(prevChild, child);\n return;\n }\n child = parent;\n }\n });\n\n /*\n function dfs(v) {\n var children = v ? g.children(v) : g.children();\n if (children.length) {\n var min = Number.POSITIVE_INFINITY,\n subgraphs = [];\n children.forEach(function(child) {\n var childMin = dfs(child);\n if (g.children(child).length) {\n subgraphs.push({ v: child, order: childMin });\n }\n min = Math.min(min, childMin);\n });\n _.sortBy(subgraphs, \"order\").reduce(function(prev, curr) {\n cg.setEdge(prev.v, curr.v);\n return curr;\n });\n return min;\n }\n return g.node(v).order;\n }\n dfs(undefined);\n */\n}\n","module.exports = barycenter;\n\nfunction barycenter(g, movable = []) {\n return movable.map(v => {\n let inV = g.inEdges(v);\n if (!inV.length) {\n return { v: v };\n } else {\n let result = inV.reduce((acc, e) => {\n let edge = g.edge(e),\n nodeU = g.node(e.v);\n return {\n sum: acc.sum + (edge.weight * nodeU.order),\n weight: acc.weight + edge.weight\n };\n }, { sum: 0, weight: 0 });\n\n return {\n v: v,\n barycenter: result.sum / result.weight,\n weight: result.weight\n };\n }\n });\n}\n\n","let Graph = require(\"@dagrejs/graphlib\").Graph;\nlet util = require(\"../util\");\n\nmodule.exports = buildLayerGraph;\n\n/*\n * Constructs a graph that can be used to sort a layer of nodes. The graph will\n * contain all base and subgraph nodes from the request layer in their original\n * hierarchy and any edges that are incident on these nodes and are of the type\n * requested by the \"relationship\" parameter.\n *\n * Nodes from the requested rank that do not have parents are assigned a root\n * node in the output graph, which is set in the root graph attribute. This\n * makes it easy to walk the hierarchy of movable nodes during ordering.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG\n * 2. Base nodes in the input graph have a rank attribute\n * 3. Subgraph nodes in the input graph has minRank and maxRank attributes\n * 4. Edges have an assigned weight\n *\n * Post-conditions:\n *\n * 1. Output graph has all nodes in the movable rank with preserved\n * hierarchy.\n * 2. Root nodes in the movable layer are made children of the node\n * indicated by the root attribute of the graph.\n * 3. Non-movable nodes incident on movable nodes, selected by the\n * relationship parameter, are included in the graph (without hierarchy).\n * 4. Edges incident on movable nodes, selected by the relationship\n * parameter, are added to the output graph.\n * 5. The weights for copied edges are aggregated as need, since the output\n * graph is not a multi-graph.\n */\nfunction buildLayerGraph(g, rank, relationship) {\n let root = createRootNode(g),\n result = new Graph({ compound: true }).setGraph({ root: root })\n .setDefaultNodeLabel(v => g.node(v));\n\n g.nodes().forEach(v => {\n let node = g.node(v),\n parent = g.parent(v);\n\n if (node.rank === rank || node.minRank <= rank && rank <= node.maxRank) {\n result.setNode(v);\n result.setParent(v, parent || root);\n\n // This assumes we have only short edges!\n g[relationship](v).forEach(e => {\n let u = e.v === v ? e.w : e.v,\n edge = result.edge(u, v),\n weight = edge !== undefined ? edge.weight : 0;\n result.setEdge(u, v, { weight: g.edge(e).weight + weight });\n });\n\n if (Object.hasOwn(node, \"minRank\")) {\n result.setNode(v, {\n borderLeft: node.borderLeft[rank],\n borderRight: node.borderRight[rank]\n });\n }\n }\n });\n\n return result;\n}\n\nfunction createRootNode(g) {\n var v;\n while (g.hasNode((v = util.uniqueId(\"_root\"))));\n return v;\n}\n","\"use strict\";\n\nlet zipObject = require(\"../util\").zipObject;\n\nmodule.exports = crossCount;\n\n/*\n * A function that takes a layering (an array of layers, each with an array of\n * ordererd nodes) and a graph and returns a weighted crossing count.\n *\n * Pre-conditions:\n *\n * 1. Input graph must be simple (not a multigraph), directed, and include\n * only simple edges.\n * 2. Edges in the input graph must have assigned weights.\n *\n * Post-conditions:\n *\n * 1. The graph and layering matrix are left unchanged.\n *\n * This algorithm is derived from Barth, et al., \"Bilayer Cross Counting.\"\n */\nfunction crossCount(g, layering) {\n let cc = 0;\n for (let i = 1; i < layering.length; ++i) {\n cc += twoLayerCrossCount(g, layering[i-1], layering[i]);\n }\n return cc;\n}\n\nfunction twoLayerCrossCount(g, northLayer, southLayer) {\n // Sort all of the edges between the north and south layers by their position\n // in the north layer and then the south. Map these edges to the position of\n // their head in the south layer.\n let southPos = zipObject(southLayer, southLayer.map((v, i) => i));\n let southEntries = northLayer.flatMap(v => {\n return g.outEdges(v).map(e => {\n return { pos: southPos[e.w], weight: g.edge(e).weight };\n }).sort((a, b) => a.pos - b.pos);\n });\n\n // Build the accumulator tree\n let firstIndex = 1;\n while (firstIndex < southLayer.length) firstIndex <<= 1;\n let treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n let tree = new Array(treeSize).fill(0);\n\n // Calculate the weighted crossings\n let cc = 0;\n southEntries.forEach(entry => {\n let index = entry.pos + firstIndex;\n tree[index] += entry.weight;\n let weightSum = 0;\n while (index > 0) {\n if (index % 2) {\n weightSum += tree[index + 1];\n }\n index = (index - 1) >> 1;\n tree[index] += entry.weight;\n }\n cc += entry.weight * weightSum;\n });\n\n return cc;\n}\n","\"use strict\";\n\nlet initOrder = require(\"./init-order\");\nlet crossCount = require(\"./cross-count\");\nlet sortSubgraph = require(\"./sort-subgraph\");\nlet buildLayerGraph = require(\"./build-layer-graph\");\nlet addSubgraphConstraints = require(\"./add-subgraph-constraints\");\nlet Graph = require(\"@dagrejs/graphlib\").Graph;\nlet util = require(\"../util\");\n\nmodule.exports = order;\n\n/*\n * Applies heuristics to minimize edge crossings in the graph and sets the best\n * order solution as an order attribute on each node.\n *\n * Pre-conditions:\n *\n * 1. Graph must be DAG\n * 2. Graph nodes must be objects with a \"rank\" attribute\n * 3. Graph edges must have the \"weight\" attribute\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have an \"order\" attribute based on the results of the\n * algorithm.\n */\nfunction order(g, opts) {\n if (opts && typeof opts.customOrder === 'function') {\n opts.customOrder(g, order);\n return;\n }\n\n let maxRank = util.maxRank(g),\n downLayerGraphs = buildLayerGraphs(g, util.range(1, maxRank + 1), \"inEdges\"),\n upLayerGraphs = buildLayerGraphs(g, util.range(maxRank - 1, -1, -1), \"outEdges\");\n\n let layering = initOrder(g);\n assignOrder(g, layering);\n\n if (opts && opts.disableOptimalOrderHeuristic) {\n return;\n }\n\n let bestCC = Number.POSITIVE_INFINITY,\n best;\n\n for (let i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {\n sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);\n\n layering = util.buildLayerMatrix(g);\n let cc = crossCount(g, layering);\n if (cc < bestCC) {\n lastBest = 0;\n best = Object.assign({}, layering);\n bestCC = cc;\n }\n }\n\n assignOrder(g, best);\n}\n\nfunction buildLayerGraphs(g, ranks, relationship) {\n return ranks.map(function(rank) {\n return buildLayerGraph(g, rank, relationship);\n });\n}\n\nfunction sweepLayerGraphs(layerGraphs, biasRight) {\n let cg = new Graph();\n layerGraphs.forEach(function(lg) {\n let root = lg.graph().root;\n let sorted = sortSubgraph(lg, root, cg, biasRight);\n sorted.vs.forEach((v, i) => lg.node(v).order = i);\n addSubgraphConstraints(lg, cg, sorted.vs);\n });\n}\n\nfunction assignOrder(g, layering) {\n Object.values(layering).forEach(layer => layer.forEach((v, i) => g.node(v).order = i));\n}\n","\"use strict\";\n\nlet util = require(\"../util\");\n\nmodule.exports = initOrder;\n\n/*\n * Assigns an initial order value for each node by performing a DFS search\n * starting from nodes in the first rank. Nodes are assigned an order in their\n * rank as they are first visited.\n *\n * This approach comes from Gansner, et al., \"A Technique for Drawing Directed\n * Graphs.\"\n *\n * Returns a layering matrix with an array per layer and each layer sorted by\n * the order of its nodes.\n */\nfunction initOrder(g) {\n let visited = {};\n let simpleNodes = g.nodes().filter(v => !g.children(v).length);\n let simpleNodesRanks = simpleNodes.map(v => g.node(v).rank);\n let maxRank = util.applyWithChunking(Math.max, simpleNodesRanks);\n let layers = util.range(maxRank + 1).map(() => []);\n\n function dfs(v) {\n if (visited[v]) return;\n visited[v] = true;\n let node = g.node(v);\n layers[node.rank].push(v);\n g.successors(v).forEach(dfs);\n }\n\n let orderedVs = simpleNodes.sort((a, b) => g.node(a).rank - g.node(b).rank);\n orderedVs.forEach(dfs);\n\n return layers;\n}\n","\"use strict\";\n\nlet util = require(\"../util\");\n\nmodule.exports = resolveConflicts;\n\n/*\n * Given a list of entries of the form {v, barycenter, weight} and a\n * constraint graph this function will resolve any conflicts between the\n * constraint graph and the barycenters for the entries. If the barycenters for\n * an entry would violate a constraint in the constraint graph then we coalesce\n * the nodes in the conflict into a new node that respects the contraint and\n * aggregates barycenter and weight information.\n *\n * This implementation is based on the description in Forster, \"A Fast and\n * Simple Hueristic for Constrained Two-Level Crossing Reduction,\" thought it\n * differs in some specific details.\n *\n * Pre-conditions:\n *\n * 1. Each entry has the form {v, barycenter, weight}, or if the node has\n * no barycenter, then {v}.\n *\n * Returns:\n *\n * A new list of entries of the form {vs, i, barycenter, weight}. The list\n * `vs` may either be a singleton or it may be an aggregation of nodes\n * ordered such that they do not violate constraints from the constraint\n * graph. The property `i` is the lowest original index of any of the\n * elements in `vs`.\n */\nfunction resolveConflicts(entries, cg) {\n let mappedEntries = {};\n entries.forEach((entry, i) => {\n let tmp = mappedEntries[entry.v] = {\n indegree: 0,\n \"in\": [],\n out: [],\n vs: [entry.v],\n i: i\n };\n if (entry.barycenter !== undefined) {\n tmp.barycenter = entry.barycenter;\n tmp.weight = entry.weight;\n }\n });\n\n cg.edges().forEach(e => {\n let entryV = mappedEntries[e.v];\n let entryW = mappedEntries[e.w];\n if (entryV !== undefined && entryW !== undefined) {\n entryW.indegree++;\n entryV.out.push(mappedEntries[e.w]);\n }\n });\n\n let sourceSet = Object.values(mappedEntries).filter(entry => !entry.indegree);\n\n return doResolveConflicts(sourceSet);\n}\n\nfunction doResolveConflicts(sourceSet) {\n let entries = [];\n\n function handleIn(vEntry) {\n return uEntry => {\n if (uEntry.merged) {\n return;\n }\n if (uEntry.barycenter === undefined ||\n vEntry.barycenter === undefined ||\n uEntry.barycenter >= vEntry.barycenter) {\n mergeEntries(vEntry, uEntry);\n }\n };\n }\n\n function handleOut(vEntry) {\n return wEntry => {\n wEntry[\"in\"].push(vEntry);\n if (--wEntry.indegree === 0) {\n sourceSet.push(wEntry);\n }\n };\n }\n\n while (sourceSet.length) {\n let entry = sourceSet.pop();\n entries.push(entry);\n entry[\"in\"].reverse().forEach(handleIn(entry));\n entry.out.forEach(handleOut(entry));\n }\n\n return entries.filter(entry => !entry.merged).map(entry => {\n return util.pick(entry, [\"vs\", \"i\", \"barycenter\", \"weight\"]);\n });\n}\n\nfunction mergeEntries(target, source) {\n let sum = 0;\n let weight = 0;\n\n if (target.weight) {\n sum += target.barycenter * target.weight;\n weight += target.weight;\n }\n\n if (source.weight) {\n sum += source.barycenter * source.weight;\n weight += source.weight;\n }\n\n target.vs = source.vs.concat(target.vs);\n target.barycenter = sum / weight;\n target.weight = weight;\n target.i = Math.min(source.i, target.i);\n source.merged = true;\n}\n","let barycenter = require(\"./barycenter\");\nlet resolveConflicts = require(\"./resolve-conflicts\");\nlet sort = require(\"./sort\");\n\nmodule.exports = sortSubgraph;\n\nfunction sortSubgraph(g, v, cg, biasRight) {\n let movable = g.children(v);\n let node = g.node(v);\n let bl = node ? node.borderLeft : undefined;\n let br = node ? node.borderRight: undefined;\n let subgraphs = {};\n\n if (bl) {\n movable = movable.filter(w => w !== bl && w !== br);\n }\n\n let barycenters = barycenter(g, movable);\n barycenters.forEach(entry => {\n if (g.children(entry.v).length) {\n let subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);\n subgraphs[entry.v] = subgraphResult;\n if (Object.hasOwn(subgraphResult, \"barycenter\")) {\n mergeBarycenters(entry, subgraphResult);\n }\n }\n });\n\n let entries = resolveConflicts(barycenters, cg);\n expandSubgraphs(entries, subgraphs);\n\n let result = sort(entries, biasRight);\n\n if (bl) {\n result.vs = [bl, result.vs, br].flat(true);\n if (g.predecessors(bl).length) {\n let blPred = g.node(g.predecessors(bl)[0]),\n brPred = g.node(g.predecessors(br)[0]);\n if (!Object.hasOwn(result, \"barycenter\")) {\n result.barycenter = 0;\n result.weight = 0;\n }\n result.barycenter = (result.barycenter * result.weight +\n blPred.order + brPred.order) / (result.weight + 2);\n result.weight += 2;\n }\n }\n\n return result;\n}\n\nfunction expandSubgraphs(entries, subgraphs) {\n entries.forEach(entry => {\n entry.vs = entry.vs.flatMap(v => {\n if (subgraphs[v]) {\n return subgraphs[v].vs;\n }\n return v;\n });\n });\n}\n\nfunction mergeBarycenters(target, other) {\n if (target.barycenter !== undefined) {\n target.barycenter = (target.barycenter * target.weight +\n other.barycenter * other.weight) /\n (target.weight + other.weight);\n target.weight += other.weight;\n } else {\n target.barycenter = other.barycenter;\n target.weight = other.weight;\n }\n}\n","let util = require(\"../util\");\n\nmodule.exports = sort;\n\nfunction sort(entries, biasRight) {\n let parts = util.partition(entries, entry => {\n return Object.hasOwn(entry, \"barycenter\");\n });\n let sortable = parts.lhs,\n unsortable = parts.rhs.sort((a, b) => b.i - a.i),\n vs = [],\n sum = 0,\n weight = 0,\n vsIndex = 0;\n\n sortable.sort(compareWithBias(!!biasRight));\n\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n\n sortable.forEach(entry => {\n vsIndex += entry.vs.length;\n vs.push(entry.vs);\n sum += entry.barycenter * entry.weight;\n weight += entry.weight;\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n });\n\n let result = { vs: vs.flat(true) };\n if (weight) {\n result.barycenter = sum / weight;\n result.weight = weight;\n }\n return result;\n}\n\nfunction consumeUnsortable(vs, unsortable, index) {\n let last;\n while (unsortable.length && (last = unsortable[unsortable.length - 1]).i <= index) {\n unsortable.pop();\n vs.push(last.vs);\n index++;\n }\n return index;\n}\n\nfunction compareWithBias(bias) {\n return (entryV, entryW) => {\n if (entryV.barycenter < entryW.barycenter) {\n return -1;\n } else if (entryV.barycenter > entryW.barycenter) {\n return 1;\n }\n\n return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;\n };\n}\n","module.exports = parentDummyChains;\n\nfunction parentDummyChains(g) {\n let postorderNums = postorder(g);\n\n g.graph().dummyChains.forEach(v => {\n let node = g.node(v);\n let edgeObj = node.edgeObj;\n let pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);\n let path = pathData.path;\n let lca = pathData.lca;\n let pathIdx = 0;\n let pathV = path[pathIdx];\n let ascending = true;\n\n while (v !== edgeObj.w) {\n node = g.node(v);\n\n if (ascending) {\n while ((pathV = path[pathIdx]) !== lca &&\n g.node(pathV).maxRank < node.rank) {\n pathIdx++;\n }\n\n if (pathV === lca) {\n ascending = false;\n }\n }\n\n if (!ascending) {\n while (pathIdx < path.length - 1 &&\n g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) {\n pathIdx++;\n }\n pathV = path[pathIdx];\n }\n\n g.setParent(v, pathV);\n v = g.successors(v)[0];\n }\n });\n}\n\n// Find a path from v to w through the lowest common ancestor (LCA). Return the\n// full path and the LCA.\nfunction findPath(g, postorderNums, v, w) {\n let vPath = [];\n let wPath = [];\n let low = Math.min(postorderNums[v].low, postorderNums[w].low);\n let lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);\n let parent;\n let lca;\n\n // Traverse up from v to find the LCA\n parent = v;\n do {\n parent = g.parent(parent);\n vPath.push(parent);\n } while (parent &&\n (postorderNums[parent].low > low || lim > postorderNums[parent].lim));\n lca = parent;\n\n // Traverse from w to LCA\n parent = w;\n while ((parent = g.parent(parent)) !== lca) {\n wPath.push(parent);\n }\n\n return { path: vPath.concat(wPath.reverse()), lca: lca };\n}\n\nfunction postorder(g) {\n let result = {};\n let lim = 0;\n\n function dfs(v) {\n let low = lim;\n g.children(v).forEach(dfs);\n result[v] = { low: low, lim: lim++ };\n }\n g.children().forEach(dfs);\n\n return result;\n}\n","\"use strict\";\n\nlet Graph = require(\"@dagrejs/graphlib\").Graph;\nlet util = require(\"../util\");\n\n/*\n * This module provides coordinate assignment based on Brandes and Köpf, \"Fast\n * and Simple Horizontal Coordinate Assignment.\"\n */\n\nmodule.exports = {\n positionX: positionX,\n findType1Conflicts: findType1Conflicts,\n findType2Conflicts: findType2Conflicts,\n addConflict: addConflict,\n hasConflict: hasConflict,\n verticalAlignment: verticalAlignment,\n horizontalCompaction: horizontalCompaction,\n alignCoordinates: alignCoordinates,\n findSmallestWidthAlignment: findSmallestWidthAlignment,\n balance: balance\n};\n\n/*\n * Marks all edges in the graph with a type-1 conflict with the \"type1Conflict\"\n * property. A type-1 conflict is one where a non-inner segment crosses an\n * inner segment. An inner segment is an edge with both incident nodes marked\n * with the \"dummy\" property.\n *\n * This algorithm scans layer by layer, starting with the second, for type-1\n * conflicts between the current layer and the previous layer. For each layer\n * it scans the nodes from left to right until it reaches one that is incident\n * on an inner segment. It then scans predecessors to determine if they have\n * edges that cross that inner segment. At the end a final scan is done for all\n * nodes on the current rank to see if they cross the last visited inner\n * segment.\n *\n * This algorithm (safely) assumes that a dummy node will only be incident on a\n * single node in the layers being scanned.\n */\nfunction findType1Conflicts(g, layering) {\n let conflicts = {};\n\n function visitLayer(prevLayer, layer) {\n let\n // last visited node in the previous layer that is incident on an inner\n // segment.\n k0 = 0,\n // Tracks the last node in this layer scanned for crossings with a type-1\n // segment.\n scanPos = 0,\n prevLayerLength = prevLayer.length,\n lastNode = layer[layer.length - 1];\n\n layer.forEach((v, i) => {\n let w = findOtherInnerSegmentNode(g, v),\n k1 = w ? g.node(w).order : prevLayerLength;\n\n if (w || v === lastNode) {\n layer.slice(scanPos, i+1).forEach(scanNode => {\n g.predecessors(scanNode).forEach(u => {\n let uLabel = g.node(u),\n uPos = uLabel.order;\n if ((uPos < k0 || k1 < uPos) &&\n !(uLabel.dummy && g.node(scanNode).dummy)) {\n addConflict(conflicts, u, scanNode);\n }\n });\n });\n scanPos = i + 1;\n k0 = k1;\n }\n });\n\n return layer;\n }\n\n layering.length && layering.reduce(visitLayer);\n\n return conflicts;\n}\n\nfunction findType2Conflicts(g, layering) {\n let conflicts = {};\n\n function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {\n let v;\n util.range(southPos, southEnd).forEach(i => {\n v = south[i];\n if (g.node(v).dummy) {\n g.predecessors(v).forEach(u => {\n let uNode = g.node(u);\n if (uNode.dummy &&\n (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {\n addConflict(conflicts, u, v);\n }\n });\n }\n });\n }\n\n\n function visitLayer(north, south) {\n let prevNorthPos = -1,\n nextNorthPos,\n southPos = 0;\n\n south.forEach((v, southLookahead) => {\n if (g.node(v).dummy === \"border\") {\n let predecessors = g.predecessors(v);\n if (predecessors.length) {\n nextNorthPos = g.node(predecessors[0]).order;\n scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);\n southPos = southLookahead;\n prevNorthPos = nextNorthPos;\n }\n }\n scan(south, southPos, south.length, nextNorthPos, north.length);\n });\n\n return south;\n }\n\n layering.length && layering.reduce(visitLayer);\n\n return conflicts;\n}\n\nfunction findOtherInnerSegmentNode(g, v) {\n if (g.node(v).dummy) {\n return g.predecessors(v).find(u => g.node(u).dummy);\n }\n}\n\nfunction addConflict(conflicts, v, w) {\n if (v > w) {\n let tmp = v;\n v = w;\n w = tmp;\n }\n\n let conflictsV = conflicts[v];\n if (!conflictsV) {\n conflicts[v] = conflictsV = {};\n }\n conflictsV[w] = true;\n}\n\nfunction hasConflict(conflicts, v, w) {\n if (v > w) {\n let tmp = v;\n v = w;\n w = tmp;\n }\n return !!conflicts[v] && Object.hasOwn(conflicts[v], w);\n}\n\n/*\n * Try to align nodes into vertical \"blocks\" where possible. This algorithm\n * attempts to align a node with one of its median neighbors. If the edge\n * connecting a neighbor is a type-1 conflict then we ignore that possibility.\n * If a previous node has already formed a block with a node after the node\n * we're trying to form a block with, we also ignore that possibility - our\n * blocks would be split in that scenario.\n */\nfunction verticalAlignment(g, layering, conflicts, neighborFn) {\n let root = {},\n align = {},\n pos = {};\n\n // We cache the position here based on the layering because the graph and\n // layering may be out of sync. The layering matrix is manipulated to\n // generate different extreme alignments.\n layering.forEach(layer => {\n layer.forEach((v, order) => {\n root[v] = v;\n align[v] = v;\n pos[v] = order;\n });\n });\n\n layering.forEach(layer => {\n let prevIdx = -1;\n layer.forEach(v => {\n let ws = neighborFn(v);\n if (ws.length) {\n ws = ws.sort((a, b) => pos[a] - pos[b]);\n let mp = (ws.length - 1) / 2;\n for (let i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {\n let w = ws[i];\n if (align[v] === v &&\n prevIdx < pos[w] &&\n !hasConflict(conflicts, v, w)) {\n align[w] = v;\n align[v] = root[v] = root[w];\n prevIdx = pos[w];\n }\n }\n }\n });\n });\n\n return { root: root, align: align };\n}\n\nfunction horizontalCompaction(g, layering, root, align, reverseSep) {\n // This portion of the algorithm differs from BK due to a number of problems.\n // Instead of their algorithm we construct a new block graph and do two\n // sweeps. The first sweep places blocks with the smallest possible\n // coordinates. The second sweep removes unused space by moving blocks to the\n // greatest coordinates without violating separation.\n let xs = {},\n blockG = buildBlockGraph(g, layering, root, reverseSep),\n borderType = reverseSep ? \"borderLeft\" : \"borderRight\";\n\n function iterate(setXsFunc, nextNodesFunc) {\n let stack = blockG.nodes();\n let elem = stack.pop();\n let visited = {};\n while (elem) {\n if (visited[elem]) {\n setXsFunc(elem);\n } else {\n visited[elem] = true;\n stack.push(elem);\n stack = stack.concat(nextNodesFunc(elem));\n }\n\n elem = stack.pop();\n }\n }\n\n // First pass, assign smallest coordinates\n function pass1(elem) {\n xs[elem] = blockG.inEdges(elem).reduce((acc, e) => {\n return Math.max(acc, xs[e.v] + blockG.edge(e));\n }, 0);\n }\n\n // Second pass, assign greatest coordinates\n function pass2(elem) {\n let min = blockG.outEdges(elem).reduce((acc, e) => {\n return Math.min(acc, xs[e.w] - blockG.edge(e));\n }, Number.POSITIVE_INFINITY);\n\n let node = g.node(elem);\n if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {\n xs[elem] = Math.max(xs[elem], min);\n }\n }\n\n iterate(pass1, blockG.predecessors.bind(blockG));\n iterate(pass2, blockG.successors.bind(blockG));\n\n // Assign x coordinates to all nodes\n Object.keys(align).forEach(v => xs[v] = xs[root[v]]);\n\n return xs;\n}\n\n\nfunction buildBlockGraph(g, layering, root, reverseSep) {\n let blockGraph = new Graph(),\n graphLabel = g.graph(),\n sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);\n\n layering.forEach(layer => {\n let u;\n layer.forEach(v => {\n let vRoot = root[v];\n blockGraph.setNode(vRoot);\n if (u) {\n var uRoot = root[u],\n prevMax = blockGraph.edge(uRoot, vRoot);\n blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));\n }\n u = v;\n });\n });\n\n return blockGraph;\n}\n\n/*\n * Returns the alignment that has the smallest width of the given alignments.\n */\nfunction findSmallestWidthAlignment(g, xss) {\n return Object.values(xss).reduce((currentMinAndXs, xs) => {\n let max = Number.NEGATIVE_INFINITY;\n let min = Number.POSITIVE_INFINITY;\n\n Object.entries(xs).forEach(([v, x]) => {\n let halfWidth = width(g, v) / 2;\n\n max = Math.max(x + halfWidth, max);\n min = Math.min(x - halfWidth, min);\n });\n\n const newMin = max - min;\n if (newMin < currentMinAndXs[0]) {\n currentMinAndXs = [newMin, xs];\n }\n return currentMinAndXs;\n }, [Number.POSITIVE_INFINITY, null])[1];\n}\n\n/*\n * Align the coordinates of each of the layout alignments such that\n * left-biased alignments have their minimum coordinate at the same point as\n * the minimum coordinate of the smallest width alignment and right-biased\n * alignments have their maximum coordinate at the same point as the maximum\n * coordinate of the smallest width alignment.\n */\nfunction alignCoordinates(xss, alignTo) {\n let alignToVals = Object.values(alignTo),\n alignToMin = util.applyWithChunking(Math.min, alignToVals),\n alignToMax = util.applyWithChunking(Math.max, alignToVals);\n\n [\"u\", \"d\"].forEach(vert => {\n [\"l\", \"r\"].forEach(horiz => {\n let alignment = vert + horiz,\n xs = xss[alignment];\n\n if (xs === alignTo) return;\n\n let xsVals = Object.values(xs);\n let delta = alignToMin - util.applyWithChunking(Math.min, xsVals);\n if (horiz !== \"l\") {\n delta = alignToMax - util.applyWithChunking(Math.max,xsVals);\n }\n\n if (delta) {\n xss[alignment] = util.mapValues(xs, x => x + delta);\n }\n });\n });\n}\n\nfunction balance(xss, align) {\n return util.mapValues(xss.ul, (num, v) => {\n if (align) {\n return xss[align.toLowerCase()][v];\n } else {\n let xs = Object.values(xss).map(xs => xs[v]).sort((a, b) => a - b);\n return (xs[1] + xs[2]) / 2;\n }\n });\n}\n\nfunction positionX(g) {\n let layering = util.buildLayerMatrix(g);\n let conflicts = Object.assign(\n findType1Conflicts(g, layering),\n findType2Conflicts(g, layering));\n\n let xss = {};\n let adjustedLayering;\n [\"u\", \"d\"].forEach(vert => {\n adjustedLayering = vert === \"u\" ? layering : Object.values(layering).reverse();\n [\"l\", \"r\"].forEach(horiz => {\n if (horiz === \"r\") {\n adjustedLayering = adjustedLayering.map(inner => {\n return Object.values(inner).reverse();\n });\n }\n\n let neighborFn = (vert === \"u\" ? g.predecessors : g.successors).bind(g);\n let align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);\n let xs = horizontalCompaction(g, adjustedLayering,\n align.root, align.align, horiz === \"r\");\n if (horiz === \"r\") {\n xs = util.mapValues(xs, x => -x);\n }\n xss[vert + horiz] = xs;\n });\n });\n\n\n let smallestWidth = findSmallestWidthAlignment(g, xss);\n alignCoordinates(xss, smallestWidth);\n return balance(xss, g.graph().align);\n}\n\nfunction sep(nodeSep, edgeSep, reverseSep) {\n return (g, v, w) => {\n let vLabel = g.node(v);\n let wLabel = g.node(w);\n let sum = 0;\n let delta;\n\n sum += vLabel.width / 2;\n if (Object.hasOwn(vLabel, \"labelpos\")) {\n switch (vLabel.labelpos.toLowerCase()) {\n case \"l\": delta = -vLabel.width / 2; break;\n case \"r\": delta = vLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;\n sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;\n\n sum += wLabel.width / 2;\n if (Object.hasOwn(wLabel, \"labelpos\")) {\n switch (wLabel.labelpos.toLowerCase()) {\n case \"l\": delta = wLabel.width / 2; break;\n case \"r\": delta = -wLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n return sum;\n };\n}\n\nfunction width(g, v) {\n return g.node(v).width;\n}\n","\"use strict\";\n\nlet util = require(\"../util\");\nlet positionX = require(\"./bk\").positionX;\n\nmodule.exports = position;\n\nfunction position(g) {\n g = util.asNonCompoundGraph(g);\n\n positionY(g);\n Object.entries(positionX(g)).forEach(([v, x]) => g.node(v).x = x);\n}\n\nfunction positionY(g) {\n let layering = util.buildLayerMatrix(g);\n let rankSep = g.graph().ranksep;\n let prevY = 0;\n layering.forEach(layer => {\n const maxHeight = layer.reduce((acc, v) => {\n const height = g.node(v).height;\n if (acc > height) {\n return acc;\n } else {\n return height;\n }\n }, 0);\n layer.forEach(v => g.node(v).y = prevY + maxHeight / 2);\n prevY += maxHeight + rankSep;\n });\n}\n\n","\"use strict\";\n\nvar Graph = require(\"@dagrejs/graphlib\").Graph;\nvar slack = require(\"./util\").slack;\n\nmodule.exports = feasibleTree;\n\n/*\n * Constructs a spanning tree with tight edges and adjusted the input node's\n * ranks to achieve this. A tight edge is one that is has a length that matches\n * its \"minlen\" attribute.\n *\n * The basic structure for this function is derived from Gansner, et al., \"A\n * Technique for Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a DAG.\n * 2. Graph must be connected.\n * 3. Graph must have at least one node.\n * 5. Graph nodes must have been previously assigned a \"rank\" property that\n * respects the \"minlen\" property of incident edges.\n * 6. Graph edges must have a \"minlen\" property.\n *\n * Post-conditions:\n *\n * - Graph nodes will have their rank adjusted to ensure that all edges are\n * tight.\n *\n * Returns a tree (undirected graph) that is constructed using only \"tight\"\n * edges.\n */\nfunction feasibleTree(g) {\n var t = new Graph({ directed: false });\n\n // Choose arbitrary node from which to start our tree\n var start = g.nodes()[0];\n var size = g.nodeCount();\n t.setNode(start, {});\n\n var edge, delta;\n while (tightTree(t, g) < size) {\n edge = findMinSlackEdge(t, g);\n delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);\n shiftRanks(t, g, delta);\n }\n\n return t;\n}\n\n/*\n * Finds a maximal tree of tight edges and returns the number of nodes in the\n * tree.\n */\nfunction tightTree(t, g) {\n function dfs(v) {\n g.nodeEdges(v).forEach(e => {\n var edgeV = e.v,\n w = (v === edgeV) ? e.w : edgeV;\n if (!t.hasNode(w) && !slack(g, e)) {\n t.setNode(w, {});\n t.setEdge(v, w, {});\n dfs(w);\n }\n });\n }\n\n t.nodes().forEach(dfs);\n return t.nodeCount();\n}\n\n/*\n * Finds the edge with the smallest slack that is incident on tree and returns\n * it.\n */\nfunction findMinSlackEdge(t, g) {\n const edges = g.edges();\n\n return edges.reduce((acc, edge) => {\n let edgeSlack = Number.POSITIVE_INFINITY;\n if (t.hasNode(edge.v) !== t.hasNode(edge.w)) {\n edgeSlack = slack(g, edge);\n }\n\n if (edgeSlack < acc[0]) {\n return [edgeSlack, edge];\n }\n\n return acc;\n }, [Number.POSITIVE_INFINITY, null])[1];\n}\n\nfunction shiftRanks(t, g, delta) {\n t.nodes().forEach(v => g.node(v).rank += delta);\n}\n","\"use strict\";\n\nvar rankUtil = require(\"./util\");\nvar longestPath = rankUtil.longestPath;\nvar feasibleTree = require(\"./feasible-tree\");\nvar networkSimplex = require(\"./network-simplex\");\n\nmodule.exports = rank;\n\n/*\n * Assigns a rank to each node in the input graph that respects the \"minlen\"\n * constraint specified on edges between nodes.\n *\n * This basic structure is derived from Gansner, et al., \"A Technique for\n * Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a connected DAG\n * 2. Graph nodes must be objects\n * 3. Graph edges must have \"weight\" and \"minlen\" attributes\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have a \"rank\" attribute based on the results of the\n * algorithm. Ranks can start at any index (including negative), we'll\n * fix them up later.\n */\nfunction rank(g) {\n switch(g.graph().ranker) {\n case \"network-simplex\": networkSimplexRanker(g); break;\n case \"tight-tree\": tightTreeRanker(g); break;\n case \"longest-path\": longestPathRanker(g); break;\n default: networkSimplexRanker(g);\n }\n}\n\n// A fast and simple ranker, but results are far from optimal.\nvar longestPathRanker = longestPath;\n\nfunction tightTreeRanker(g) {\n longestPath(g);\n feasibleTree(g);\n}\n\nfunction networkSimplexRanker(g) {\n networkSimplex(g);\n}\n","\"use strict\";\n\nvar feasibleTree = require(\"./feasible-tree\");\nvar slack = require(\"./util\").slack;\nvar initRank = require(\"./util\").longestPath;\nvar preorder = require(\"@dagrejs/graphlib\").alg.preorder;\nvar postorder = require(\"@dagrejs/graphlib\").alg.postorder;\nvar simplify = require(\"../util\").simplify;\n\nmodule.exports = networkSimplex;\n\n// Expose some internals for testing purposes\nnetworkSimplex.initLowLimValues = initLowLimValues;\nnetworkSimplex.initCutValues = initCutValues;\nnetworkSimplex.calcCutValue = calcCutValue;\nnetworkSimplex.leaveEdge = leaveEdge;\nnetworkSimplex.enterEdge = enterEdge;\nnetworkSimplex.exchangeEdges = exchangeEdges;\n\n/*\n * The network simplex algorithm assigns ranks to each node in the input graph\n * and iteratively improves the ranking to reduce the length of edges.\n *\n * Preconditions:\n *\n * 1. The input graph must be a DAG.\n * 2. All nodes in the graph must have an object value.\n * 3. All edges in the graph must have \"minlen\" and \"weight\" attributes.\n *\n * Postconditions:\n *\n * 1. All nodes in the graph will have an assigned \"rank\" attribute that has\n * been optimized by the network simplex algorithm. Ranks start at 0.\n *\n *\n * A rough sketch of the algorithm is as follows:\n *\n * 1. Assign initial ranks to each node. We use the longest path algorithm,\n * which assigns ranks to the lowest position possible. In general this\n * leads to very wide bottom ranks and unnecessarily long edges.\n * 2. Construct a feasible tight tree. A tight tree is one such that all\n * edges in the tree have no slack (difference between length of edge\n * and minlen for the edge). This by itself greatly improves the assigned\n * rankings by shorting edges.\n * 3. Iteratively find edges that have negative cut values. Generally a\n * negative cut value indicates that the edge could be removed and a new\n * tree edge could be added to produce a more compact graph.\n *\n * Much of the algorithms here are derived from Gansner, et al., \"A Technique\n * for Drawing Directed Graphs.\" The structure of the file roughly follows the\n * structure of the overall algorithm.\n */\nfunction networkSimplex(g) {\n g = simplify(g);\n initRank(g);\n var t = feasibleTree(g);\n initLowLimValues(t);\n initCutValues(t, g);\n\n var e, f;\n while ((e = leaveEdge(t))) {\n f = enterEdge(t, g, e);\n exchangeEdges(t, g, e, f);\n }\n}\n\n/*\n * Initializes cut values for all edges in the tree.\n */\nfunction initCutValues(t, g) {\n var vs = postorder(t, t.nodes());\n vs = vs.slice(0, vs.length - 1);\n vs.forEach(v => assignCutValue(t, g, v));\n}\n\nfunction assignCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n t.edge(child, parent).cutvalue = calcCutValue(t, g, child);\n}\n\n/*\n * Given the tight tree, its graph, and a child in the graph calculate and\n * return the cut value for the edge between the child and its parent.\n */\nfunction calcCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n // True if the child is on the tail end of the edge in the directed graph\n var childIsTail = true;\n // The graph's view of the tree edge we're inspecting\n var graphEdge = g.edge(child, parent);\n // The accumulated cut value for the edge between this node and its parent\n var cutValue = 0;\n\n if (!graphEdge) {\n childIsTail = false;\n graphEdge = g.edge(parent, child);\n }\n\n cutValue = graphEdge.weight;\n\n g.nodeEdges(child).forEach(e => {\n var isOutEdge = e.v === child,\n other = isOutEdge ? e.w : e.v;\n\n if (other !== parent) {\n var pointsToHead = isOutEdge === childIsTail,\n otherWeight = g.edge(e).weight;\n\n cutValue += pointsToHead ? otherWeight : -otherWeight;\n if (isTreeEdge(t, child, other)) {\n var otherCutValue = t.edge(child, other).cutvalue;\n cutValue += pointsToHead ? -otherCutValue : otherCutValue;\n }\n }\n });\n\n return cutValue;\n}\n\nfunction initLowLimValues(tree, root) {\n if (arguments.length < 2) {\n root = tree.nodes()[0];\n }\n dfsAssignLowLim(tree, {}, 1, root);\n}\n\nfunction dfsAssignLowLim(tree, visited, nextLim, v, parent) {\n var low = nextLim;\n var label = tree.node(v);\n\n visited[v] = true;\n tree.neighbors(v).forEach(w => {\n if (!Object.hasOwn(visited, w)) {\n nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);\n }\n });\n\n label.low = low;\n label.lim = nextLim++;\n if (parent) {\n label.parent = parent;\n } else {\n // TODO should be able to remove this when we incrementally update low lim\n delete label.parent;\n }\n\n return nextLim;\n}\n\nfunction leaveEdge(tree) {\n return tree.edges().find(e => tree.edge(e).cutvalue < 0);\n}\n\nfunction enterEdge(t, g, edge) {\n var v = edge.v;\n var w = edge.w;\n\n // For the rest of this function we assume that v is the tail and w is the\n // head, so if we don't have this edge in the graph we should flip it to\n // match the correct orientation.\n if (!g.hasEdge(v, w)) {\n v = edge.w;\n w = edge.v;\n }\n\n var vLabel = t.node(v);\n var wLabel = t.node(w);\n var tailLabel = vLabel;\n var flip = false;\n\n // If the root is in the tail of the edge then we need to flip the logic that\n // checks for the head and tail nodes in the candidates function below.\n if (vLabel.lim > wLabel.lim) {\n tailLabel = wLabel;\n flip = true;\n }\n\n var candidates = g.edges().filter(edge => {\n return flip === isDescendant(t, t.node(edge.v), tailLabel) &&\n flip !== isDescendant(t, t.node(edge.w), tailLabel);\n });\n\n return candidates.reduce((acc, edge) => {\n if (slack(g, edge) < slack(g, acc)) {\n return edge;\n }\n\n return acc;\n });\n}\n\nfunction exchangeEdges(t, g, e, f) {\n var v = e.v;\n var w = e.w;\n t.removeEdge(v, w);\n t.setEdge(f.v, f.w, {});\n initLowLimValues(t);\n initCutValues(t, g);\n updateRanks(t, g);\n}\n\nfunction updateRanks(t, g) {\n var root = t.nodes().find(v => !g.node(v).parent);\n var vs = preorder(t, root);\n vs = vs.slice(1);\n vs.forEach(v => {\n var parent = t.node(v).parent,\n edge = g.edge(v, parent),\n flipped = false;\n\n if (!edge) {\n edge = g.edge(parent, v);\n flipped = true;\n }\n\n g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);\n });\n}\n\n/*\n * Returns true if the edge is in the tree.\n */\nfunction isTreeEdge(tree, u, v) {\n return tree.hasEdge(u, v);\n}\n\n/*\n * Returns true if the specified node is descendant of the root node per the\n * assigned low and lim attributes in the tree.\n */\nfunction isDescendant(tree, vLabel, rootLabel) {\n return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;\n}\n","\"use strict\";\n\nconst { applyWithChunking } = require(\"../util\");\n\nmodule.exports = {\n longestPath: longestPath,\n slack: slack\n};\n\n/*\n * Initializes ranks for the input graph using the longest path algorithm. This\n * algorithm scales well and is fast in practice, it yields rather poor\n * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom\n * ranks wide and leaving edges longer than necessary. However, due to its\n * speed, this algorithm is good for getting an initial ranking that can be fed\n * into other algorithms.\n *\n * This algorithm does not normalize layers because it will be used by other\n * algorithms in most cases. If using this algorithm directly, be sure to\n * run normalize at the end.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG.\n * 2. Input graph node labels can be assigned properties.\n *\n * Post-conditions:\n *\n * 1. Each node will be assign an (unnormalized) \"rank\" property.\n */\nfunction longestPath(g) {\n var visited = {};\n\n function dfs(v) {\n var label = g.node(v);\n if (Object.hasOwn(visited, v)) {\n return label.rank;\n }\n visited[v] = true;\n\n let outEdgesMinLens = g.outEdges(v).map(e => {\n if (e == null) {\n return Number.POSITIVE_INFINITY;\n }\n\n return dfs(e.w) - g.edge(e).minlen;\n });\n\n var rank = applyWithChunking(Math.min, outEdgesMinLens);\n\n if (rank === Number.POSITIVE_INFINITY) {\n rank = 0;\n }\n\n return (label.rank = rank);\n }\n\n g.sources().forEach(dfs);\n}\n\n/*\n * Returns the amount of slack for the given edge. The slack is defined as the\n * difference between the length of the edge and its minimum length.\n */\nfunction slack(g, e) {\n return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;\n}\n","/* eslint \"no-console\": off */\n\n\"use strict\";\n\nlet Graph = require(\"@dagrejs/graphlib\").Graph;\n\nmodule.exports = {\n addBorderNode,\n addDummyNode,\n applyWithChunking,\n asNonCompoundGraph,\n buildLayerMatrix,\n intersectRect,\n mapValues,\n maxRank,\n normalizeRanks,\n notime,\n partition,\n pick,\n predecessorWeights,\n range,\n removeEmptyRanks,\n simplify,\n successorWeights,\n time,\n uniqueId,\n zipObject,\n};\n\n/*\n * Adds a dummy node to the graph and return v.\n */\nfunction addDummyNode(g, type, attrs, name) {\n let v;\n do {\n v = uniqueId(name);\n } while (g.hasNode(v));\n\n attrs.dummy = type;\n g.setNode(v, attrs);\n return v;\n}\n\n/*\n * Returns a new graph with only simple edges. Handles aggregation of data\n * associated with multi-edges.\n */\nfunction simplify(g) {\n let simplified = new Graph().setGraph(g.graph());\n g.nodes().forEach(v => simplified.setNode(v, g.node(v)));\n g.edges().forEach(e => {\n let simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };\n let label = g.edge(e);\n simplified.setEdge(e.v, e.w, {\n weight: simpleLabel.weight + label.weight,\n minlen: Math.max(simpleLabel.minlen, label.minlen)\n });\n });\n return simplified;\n}\n\nfunction asNonCompoundGraph(g) {\n let simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());\n g.nodes().forEach(v => {\n if (!g.children(v).length) {\n simplified.setNode(v, g.node(v));\n }\n });\n g.edges().forEach(e => {\n simplified.setEdge(e, g.edge(e));\n });\n return simplified;\n}\n\nfunction successorWeights(g) {\n let weightMap = g.nodes().map(v => {\n let sucs = {};\n g.outEdges(v).forEach(e => {\n sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;\n });\n return sucs;\n });\n return zipObject(g.nodes(), weightMap);\n}\n\nfunction predecessorWeights(g) {\n let weightMap = g.nodes().map(v => {\n let preds = {};\n g.inEdges(v).forEach(e => {\n preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;\n });\n return preds;\n });\n return zipObject(g.nodes(), weightMap);\n}\n\n/*\n * Finds where a line starting at point ({x, y}) would intersect a rectangle\n * ({x, y, width, height}) if it were pointing at the rectangle's center.\n */\nfunction intersectRect(rect, point) {\n let x = rect.x;\n let y = rect.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n let dx = point.x - x;\n let dy = point.y - y;\n let w = rect.width / 2;\n let h = rect.height / 2;\n\n if (!dx && !dy) {\n throw new Error(\"Not possible to find intersection inside of the rectangle\");\n }\n\n let sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = h * dx / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = w * dy / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n\n/*\n * Given a DAG with each node assigned \"rank\" and \"order\" properties, this\n * function will produce a matrix with the ids of each node.\n */\nfunction buildLayerMatrix(g) {\n let layering = range(maxRank(g) + 1).map(() => []);\n g.nodes().forEach(v => {\n let node = g.node(v);\n let rank = node.rank;\n if (rank !== undefined) {\n layering[rank][node.order] = v;\n }\n });\n return layering;\n}\n\n/*\n * Adjusts the ranks for all nodes in the graph such that all nodes v have\n * rank(v) >= 0 and at least one node w has rank(w) = 0.\n */\nfunction normalizeRanks(g) {\n let nodeRanks = g.nodes().map(v => {\n let rank = g.node(v).rank;\n if (rank === undefined) {\n return Number.MAX_VALUE;\n }\n\n return rank;\n });\n let min = applyWithChunking(Math.min, nodeRanks);\n g.nodes().forEach(v => {\n let node = g.node(v);\n if (Object.hasOwn(node, \"rank\")) {\n node.rank -= min;\n }\n });\n}\n\nfunction removeEmptyRanks(g) {\n // Ranks may not start at 0, so we need to offset them\n let nodeRanks = g.nodes().map(v => g.node(v).rank);\n let offset = applyWithChunking(Math.min, nodeRanks);\n\n let layers = [];\n g.nodes().forEach(v => {\n let rank = g.node(v).rank - offset;\n if (!layers[rank]) {\n layers[rank] = [];\n }\n layers[rank].push(v);\n });\n\n let delta = 0;\n let nodeRankFactor = g.graph().nodeRankFactor;\n Array.from(layers).forEach((vs, i) => {\n if (vs === undefined && i % nodeRankFactor !== 0) {\n --delta;\n } else if (vs !== undefined && delta) {\n vs.forEach(v => g.node(v).rank += delta);\n }\n });\n}\n\nfunction addBorderNode(g, prefix, rank, order) {\n let node = {\n width: 0,\n height: 0\n };\n if (arguments.length >= 4) {\n node.rank = rank;\n node.order = order;\n }\n return addDummyNode(g, \"border\", node, prefix);\n}\n\nfunction splitToChunks(array, chunkSize = CHUNKING_THRESHOLD) {\n const chunks = [];\n for (let i = 0; i < array.length; i += chunkSize) {\n const chunk = array.slice(i, i + chunkSize);\n chunks.push(chunk);\n }\n return chunks;\n}\n\nconst CHUNKING_THRESHOLD = 65535;\n\nfunction applyWithChunking(fn, argsArray) {\n if(argsArray.length > CHUNKING_THRESHOLD) {\n const chunks = splitToChunks(argsArray);\n return fn.apply(null, chunks.map(chunk => fn.apply(null, chunk)));\n } else {\n return fn.apply(null, argsArray);\n }\n}\n\nfunction maxRank(g) {\n const nodes = g.nodes();\n const nodeRanks = nodes.map(v => {\n let rank = g.node(v).rank;\n if (rank === undefined) {\n return Number.MIN_VALUE;\n }\n return rank;\n });\n\n return applyWithChunking(Math.max, nodeRanks);\n}\n\n/*\n * Partition a collection into two groups: `lhs` and `rhs`. If the supplied\n * function returns true for an entry it goes into `lhs`. Otherwise it goes\n * into `rhs.\n */\nfunction partition(collection, fn) {\n let result = { lhs: [], rhs: [] };\n collection.forEach(value => {\n if (fn(value)) {\n result.lhs.push(value);\n } else {\n result.rhs.push(value);\n }\n });\n return result;\n}\n\n/*\n * Returns a new function that wraps `fn` with a timer. The wrapper logs the\n * time it takes to execute the function.\n */\nfunction time(name, fn) {\n let start = Date.now();\n try {\n return fn();\n } finally {\n console.log(name + \" time: \" + (Date.now() - start) + \"ms\");\n }\n}\n\nfunction notime(name, fn) {\n return fn();\n}\n\nlet idCounter = 0;\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nfunction range(start, limit, step = 1) {\n if (limit == null) {\n limit = start;\n start = 0;\n }\n\n let endCon = (i) => i < limit;\n if (step < 0) {\n endCon = (i) => limit < i;\n }\n\n const range = [];\n for (let i = start; endCon(i); i += step) {\n range.push(i);\n }\n\n return range;\n}\n\nfunction pick(source, keys) {\n const dest = {};\n for (const key of keys) {\n if (source[key] !== undefined) {\n dest[key] = source[key];\n }\n }\n\n return dest;\n}\n\nfunction mapValues(obj, funcOrProp) {\n let func = funcOrProp;\n if (typeof funcOrProp === 'string') {\n func = (val) => val[funcOrProp];\n }\n\n return Object.entries(obj).reduce((acc, [k, v]) => {\n acc[k] = func(v, k);\n return acc;\n }, {});\n}\n\nfunction zipObject(props, values) {\n return props.reduce((acc, key, i) => {\n acc[key] = values[i];\n return acc;\n }, {});\n}\n","module.exports = \"1.1.4\";\n","/**\n * Copyright (c) 2014, Chris Pettitt\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of the copyright holder nor the names of its contributors\n * may be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar lib = require(\"./lib\");\n\nmodule.exports = {\n Graph: lib.Graph,\n json: require(\"./lib/json\"),\n alg: require(\"./lib/alg\"),\n version: lib.version\n};\n","module.exports = components;\n\nfunction components(g) {\n var visited = {};\n var cmpts = [];\n var cmpt;\n\n function dfs(v) {\n if (Object.hasOwn(visited, v)) return;\n visited[v] = true;\n cmpt.push(v);\n g.successors(v).forEach(dfs);\n g.predecessors(v).forEach(dfs);\n }\n\n g.nodes().forEach(function(v) {\n cmpt = [];\n dfs(v);\n if (cmpt.length) {\n cmpts.push(cmpt);\n }\n });\n\n return cmpts;\n}\n","module.exports = dfs;\n\n/*\n * A helper that preforms a pre- or post-order traversal on the input graph\n * and returns the nodes in the order they were visited. If the graph is\n * undirected then this algorithm will navigate using neighbors. If the graph\n * is directed then this algorithm will navigate using successors.\n *\n * If the order is not \"post\", it will be treated as \"pre\".\n */\nfunction dfs(g, vs, order) {\n if (!Array.isArray(vs)) {\n vs = [vs];\n }\n\n var navigation = g.isDirected() ? v => g.successors(v) : v => g.neighbors(v);\n var orderFunc = order === \"post\" ? postOrderDfs : preOrderDfs;\n\n var acc = [];\n var visited = {};\n vs.forEach(v => {\n if (!g.hasNode(v)) {\n throw new Error(\"Graph does not have node: \" + v);\n }\n\n orderFunc(v, navigation, visited, acc);\n });\n\n return acc;\n}\n\nfunction postOrderDfs(v, navigation, visited, acc) {\n var stack = [[v, false]];\n while (stack.length > 0) {\n var curr = stack.pop();\n if (curr[1]) {\n acc.push(curr[0]);\n } else {\n if (!Object.hasOwn(visited, curr[0])) {\n visited[curr[0]] = true;\n stack.push([curr[0], true]);\n forEachRight(navigation(curr[0]), w => stack.push([w, false]));\n }\n }\n }\n}\n\nfunction preOrderDfs(v, navigation, visited, acc) {\n var stack = [v];\n while (stack.length > 0) {\n var curr = stack.pop();\n if (!Object.hasOwn(visited, curr)) {\n visited[curr] = true;\n acc.push(curr);\n forEachRight(navigation(curr), w => stack.push(w));\n }\n }\n}\n\nfunction forEachRight(array, iteratee) {\n var length = array.length;\n while (length--) {\n iteratee(array[length], length, array);\n }\n\n return array;\n}\n","var dijkstra = require(\"./dijkstra\");\n\nmodule.exports = dijkstraAll;\n\nfunction dijkstraAll(g, weightFunc, edgeFunc) {\n return g.nodes().reduce(function(acc, v) {\n acc[v] = dijkstra(g, v, weightFunc, edgeFunc);\n return acc;\n }, {});\n}\n","var PriorityQueue = require(\"../data/priority-queue\");\n\nmodule.exports = dijkstra;\n\nvar DEFAULT_WEIGHT_FUNC = () => 1;\n\nfunction dijkstra(g, source, weightFn, edgeFn) {\n return runDijkstra(g, String(source),\n weightFn || DEFAULT_WEIGHT_FUNC,\n edgeFn || function(v) { return g.outEdges(v); });\n}\n\nfunction runDijkstra(g, source, weightFn, edgeFn) {\n var results = {};\n var pq = new PriorityQueue();\n var v, vEntry;\n\n var updateNeighbors = function(edge) {\n var w = edge.v !== v ? edge.v : edge.w;\n var wEntry = results[w];\n var weight = weightFn(edge);\n var distance = vEntry.distance + weight;\n\n if (weight < 0) {\n throw new Error(\"dijkstra does not allow negative edge weights. \" +\n \"Bad edge: \" + edge + \" Weight: \" + weight);\n }\n\n if (distance < wEntry.distance) {\n wEntry.distance = distance;\n wEntry.predecessor = v;\n pq.decrease(w, distance);\n }\n };\n\n g.nodes().forEach(function(v) {\n var distance = v === source ? 0 : Number.POSITIVE_INFINITY;\n results[v] = { distance: distance };\n pq.add(v, distance);\n });\n\n while (pq.size() > 0) {\n v = pq.removeMin();\n vEntry = results[v];\n if (vEntry.distance === Number.POSITIVE_INFINITY) {\n break;\n }\n\n edgeFn(v).forEach(updateNeighbors);\n }\n\n return results;\n}\n","var tarjan = require(\"./tarjan\");\n\nmodule.exports = findCycles;\n\nfunction findCycles(g) {\n return tarjan(g).filter(function(cmpt) {\n return cmpt.length > 1 || (cmpt.length === 1 && g.hasEdge(cmpt[0], cmpt[0]));\n });\n}\n","module.exports = floydWarshall;\n\nvar DEFAULT_WEIGHT_FUNC = () => 1;\n\nfunction floydWarshall(g, weightFn, edgeFn) {\n return runFloydWarshall(g,\n weightFn || DEFAULT_WEIGHT_FUNC,\n edgeFn || function(v) { return g.outEdges(v); });\n}\n\nfunction runFloydWarshall(g, weightFn, edgeFn) {\n var results = {};\n var nodes = g.nodes();\n\n nodes.forEach(function(v) {\n results[v] = {};\n results[v][v] = { distance: 0 };\n nodes.forEach(function(w) {\n if (v !== w) {\n results[v][w] = { distance: Number.POSITIVE_INFINITY };\n }\n });\n edgeFn(v).forEach(function(edge) {\n var w = edge.v === v ? edge.w : edge.v;\n var d = weightFn(edge);\n results[v][w] = { distance: d, predecessor: v };\n });\n });\n\n nodes.forEach(function(k) {\n var rowK = results[k];\n nodes.forEach(function(i) {\n var rowI = results[i];\n nodes.forEach(function(j) {\n var ik = rowI[k];\n var kj = rowK[j];\n var ij = rowI[j];\n var altDistance = ik.distance + kj.distance;\n if (altDistance < ij.distance) {\n ij.distance = altDistance;\n ij.predecessor = kj.predecessor;\n }\n });\n });\n });\n\n return results;\n}\n","module.exports = {\n components: require(\"./components\"),\n dijkstra: require(\"./dijkstra\"),\n dijkstraAll: require(\"./dijkstra-all\"),\n findCycles: require(\"./find-cycles\"),\n floydWarshall: require(\"./floyd-warshall\"),\n isAcyclic: require(\"./is-acyclic\"),\n postorder: require(\"./postorder\"),\n preorder: require(\"./preorder\"),\n prim: require(\"./prim\"),\n tarjan: require(\"./tarjan\"),\n topsort: require(\"./topsort\")\n};\n","var topsort = require(\"./topsort\");\n\nmodule.exports = isAcyclic;\n\nfunction isAcyclic(g) {\n try {\n topsort(g);\n } catch (e) {\n if (e instanceof topsort.CycleException) {\n return false;\n }\n throw e;\n }\n return true;\n}\n","var dfs = require(\"./dfs\");\n\nmodule.exports = postorder;\n\nfunction postorder(g, vs) {\n return dfs(g, vs, \"post\");\n}\n","var dfs = require(\"./dfs\");\n\nmodule.exports = preorder;\n\nfunction preorder(g, vs) {\n return dfs(g, vs, \"pre\");\n}\n","var Graph = require(\"../graph\");\nvar PriorityQueue = require(\"../data/priority-queue\");\n\nmodule.exports = prim;\n\nfunction prim(g, weightFunc) {\n var result = new Graph();\n var parents = {};\n var pq = new PriorityQueue();\n var v;\n\n function updateNeighbors(edge) {\n var w = edge.v === v ? edge.w : edge.v;\n var pri = pq.priority(w);\n if (pri !== undefined) {\n var edgeWeight = weightFunc(edge);\n if (edgeWeight < pri) {\n parents[w] = v;\n pq.decrease(w, edgeWeight);\n }\n }\n }\n\n if (g.nodeCount() === 0) {\n return result;\n }\n\n g.nodes().forEach(function(v) {\n pq.add(v, Number.POSITIVE_INFINITY);\n result.setNode(v);\n });\n\n // Start from an arbitrary node\n pq.decrease(g.nodes()[0], 0);\n\n var init = false;\n while (pq.size() > 0) {\n v = pq.removeMin();\n if (Object.hasOwn(parents, v)) {\n result.setEdge(v, parents[v]);\n } else if (init) {\n throw new Error(\"Input graph is not connected: \" + g);\n } else {\n init = true;\n }\n\n g.nodeEdges(v).forEach(updateNeighbors);\n }\n\n return result;\n}\n","module.exports = tarjan;\n\nfunction tarjan(g) {\n var index = 0;\n var stack = [];\n var visited = {}; // node id -> { onStack, lowlink, index }\n var results = [];\n\n function dfs(v) {\n var entry = visited[v] = {\n onStack: true,\n lowlink: index,\n index: index++\n };\n stack.push(v);\n\n g.successors(v).forEach(function(w) {\n if (!Object.hasOwn(visited, w)) {\n dfs(w);\n entry.lowlink = Math.min(entry.lowlink, visited[w].lowlink);\n } else if (visited[w].onStack) {\n entry.lowlink = Math.min(entry.lowlink, visited[w].index);\n }\n });\n\n if (entry.lowlink === entry.index) {\n var cmpt = [];\n var w;\n do {\n w = stack.pop();\n visited[w].onStack = false;\n cmpt.push(w);\n } while (v !== w);\n results.push(cmpt);\n }\n }\n\n g.nodes().forEach(function(v) {\n if (!Object.hasOwn(visited, v)) {\n dfs(v);\n }\n });\n\n return results;\n}\n","function topsort(g) {\n var visited = {};\n var stack = {};\n var results = [];\n\n function visit(node) {\n if (Object.hasOwn(stack, node)) {\n throw new CycleException();\n }\n\n if (!Object.hasOwn(visited, node)) {\n stack[node] = true;\n visited[node] = true;\n g.predecessors(node).forEach(visit);\n delete stack[node];\n results.push(node);\n }\n }\n\n g.sinks().forEach(visit);\n\n if (Object.keys(visited).length !== g.nodeCount()) {\n throw new CycleException();\n }\n\n return results;\n}\n\nclass CycleException extends Error {\n constructor() {\n super(...arguments);\n }\n}\n\nmodule.exports = topsort;\ntopsort.CycleException = CycleException;\n","/**\n * A min-priority queue data structure. This algorithm is derived from Cormen,\n * et al., \"Introduction to Algorithms\". The basic idea of a min-priority\n * queue is that you can efficiently (in O(1) time) get the smallest key in\n * the queue. Adding and removing elements takes O(log n) time. A key can\n * have its priority decreased in O(log n) time.\n */\nclass PriorityQueue {\n _arr = [];\n _keyIndices = {};\n\n /**\n * Returns the number of elements in the queue. Takes `O(1)` time.\n */\n size() {\n return this._arr.length;\n }\n\n /**\n * Returns the keys that are in the queue. Takes `O(n)` time.\n */\n keys() {\n return this._arr.map(function(x) { return x.key; });\n }\n\n /**\n * Returns `true` if **key** is in the queue and `false` if not.\n */\n has(key) {\n return Object.hasOwn(this._keyIndices, key);\n }\n\n /**\n * Returns the priority for **key**. If **key** is not present in the queue\n * then this function returns `undefined`. Takes `O(1)` time.\n *\n * @param {Object} key\n */\n priority(key) {\n var index = this._keyIndices[key];\n if (index !== undefined) {\n return this._arr[index].priority;\n }\n }\n\n /**\n * Returns the key for the minimum element in this queue. If the queue is\n * empty this function throws an Error. Takes `O(1)` time.\n */\n min() {\n if (this.size() === 0) {\n throw new Error(\"Queue underflow\");\n }\n return this._arr[0].key;\n }\n\n /**\n * Inserts a new key into the priority queue. If the key already exists in\n * the queue this function returns `false`; otherwise it will return `true`.\n * Takes `O(n)` time.\n *\n * @param {Object} key the key to add\n * @param {Number} priority the initial priority for the key\n */\n add(key, priority) {\n var keyIndices = this._keyIndices;\n key = String(key);\n if (!Object.hasOwn(keyIndices, key)) {\n var arr = this._arr;\n var index = arr.length;\n keyIndices[key] = index;\n arr.push({key: key, priority: priority});\n this._decrease(index);\n return true;\n }\n return false;\n }\n\n /**\n * Removes and returns the smallest key in the queue. Takes `O(log n)` time.\n */\n removeMin() {\n this._swap(0, this._arr.length - 1);\n var min = this._arr.pop();\n delete this._keyIndices[min.key];\n this._heapify(0);\n return min.key;\n }\n\n /**\n * Decreases the priority for **key** to **priority**. If the new priority is\n * greater than the previous priority, this function will throw an Error.\n *\n * @param {Object} key the key for which to raise priority\n * @param {Number} priority the new priority for the key\n */\n decrease(key, priority) {\n var index = this._keyIndices[key];\n if (priority > this._arr[index].priority) {\n throw new Error(\"New priority is greater than current priority. \" +\n \"Key: \" + key + \" Old: \" + this._arr[index].priority + \" New: \" + priority);\n }\n this._arr[index].priority = priority;\n this._decrease(index);\n }\n\n _heapify(i) {\n var arr = this._arr;\n var l = 2 * i;\n var r = l + 1;\n var largest = i;\n if (l < arr.length) {\n largest = arr[l].priority < arr[largest].priority ? l : largest;\n if (r < arr.length) {\n largest = arr[r].priority < arr[largest].priority ? r : largest;\n }\n if (largest !== i) {\n this._swap(i, largest);\n this._heapify(largest);\n }\n }\n }\n\n _decrease(index) {\n var arr = this._arr;\n var priority = arr[index].priority;\n var parent;\n while (index !== 0) {\n parent = index >> 1;\n if (arr[parent].priority < priority) {\n break;\n }\n this._swap(index, parent);\n index = parent;\n }\n }\n\n _swap(i, j) {\n var arr = this._arr;\n var keyIndices = this._keyIndices;\n var origArrI = arr[i];\n var origArrJ = arr[j];\n arr[i] = origArrJ;\n arr[j] = origArrI;\n keyIndices[origArrJ.key] = i;\n keyIndices[origArrI.key] = j;\n }\n}\n\nmodule.exports = PriorityQueue;\n","\"use strict\";\n\nvar DEFAULT_EDGE_NAME = \"\\x00\";\nvar GRAPH_NODE = \"\\x00\";\nvar EDGE_KEY_DELIM = \"\\x01\";\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\nclass Graph {\n _isDirected = true;\n _isMultigraph = false;\n _isCompound = false;\n\n // Label for the graph itself\n _label;\n\n // Defaults to be set when creating a new node\n _defaultNodeLabelFn = () => undefined;\n\n // Defaults to be set when creating a new edge\n _defaultEdgeLabelFn = () => undefined;\n\n // v -> label\n _nodes = {};\n\n // v -> edgeObj\n _in = {};\n\n // u -> v -> Number\n _preds = {};\n\n // v -> edgeObj\n _out = {};\n\n // v -> w -> Number\n _sucs = {};\n\n // e -> edgeObj\n _edgeObjs = {};\n\n // e -> label\n _edgeLabels = {};\n\n /* Number of nodes in the graph. Should only be changed by the implementation. */\n _nodeCount = 0;\n\n /* Number of edges in the graph. Should only be changed by the implementation. */\n _edgeCount = 0;\n\n _parent;\n\n _children;\n\n constructor(opts) {\n if (opts) {\n this._isDirected = Object.hasOwn(opts, \"directed\") ? opts.directed : true;\n this._isMultigraph = Object.hasOwn(opts, \"multigraph\") ? opts.multigraph : false;\n this._isCompound = Object.hasOwn(opts, \"compound\") ? opts.compound : false;\n }\n\n if (this._isCompound) {\n // v -> parent\n this._parent = {};\n\n // v -> children\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n }\n\n /* === Graph functions ========= */\n\n /**\n * Whether graph was created with 'directed' flag set to true or not.\n */\n isDirected() {\n return this._isDirected;\n }\n\n /**\n * Whether graph was created with 'multigraph' flag set to true or not.\n */\n isMultigraph() {\n return this._isMultigraph;\n }\n\n /**\n * Whether graph was created with 'compound' flag set to true or not.\n */\n isCompound() {\n return this._isCompound;\n }\n\n /**\n * Sets the label of the graph.\n */\n setGraph(label) {\n this._label = label;\n return this;\n }\n\n /**\n * Gets the graph label.\n */\n graph() {\n return this._label;\n }\n\n\n /* === Node functions ========== */\n\n /**\n * Sets the default node label. If newDefault is a function, it will be\n * invoked ach time when setting a label for a node. Otherwise, this label\n * will be assigned as default label in case if no label was specified while\n * setting a node.\n * Complexity: O(1).\n */\n setDefaultNodeLabel(newDefault) {\n this._defaultNodeLabelFn = newDefault;\n if (typeof newDefault !== 'function') {\n this._defaultNodeLabelFn = () => newDefault;\n }\n\n return this;\n }\n\n /**\n * Gets the number of nodes in the graph.\n * Complexity: O(1).\n */\n nodeCount() {\n return this._nodeCount;\n }\n\n /**\n * Gets all nodes of the graph. Note, the in case of compound graph subnodes are\n * not included in list.\n * Complexity: O(1).\n */\n nodes() {\n return Object.keys(this._nodes);\n }\n\n /**\n * Gets list of nodes without in-edges.\n * Complexity: O(|V|).\n */\n sources() {\n var self = this;\n return this.nodes().filter(v => Object.keys(self._in[v]).length === 0);\n }\n\n /**\n * Gets list of nodes without out-edges.\n * Complexity: O(|V|).\n */\n sinks() {\n var self = this;\n return this.nodes().filter(v => Object.keys(self._out[v]).length === 0);\n }\n\n /**\n * Invokes setNode method for each node in names list.\n * Complexity: O(|names|).\n */\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n vs.forEach(function(v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n\n /**\n * Creates or updates the value for the node v in the graph. If label is supplied\n * it is set as the value for the node. If label is not supplied and the node was\n * created by this call then the default node label will be assigned.\n * Complexity: O(1).\n */\n setNode(v, value) {\n if (Object.hasOwn(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n\n /**\n * Gets the label of node with specified name.\n * Complexity: O(|V|).\n */\n node(v) {\n return this._nodes[v];\n }\n\n /**\n * Detects whether graph has a node with specified name or not.\n */\n hasNode(v) {\n return Object.hasOwn(this._nodes, v);\n }\n\n /**\n * Remove the node with the name from the graph or do nothing if the node is not in\n * the graph. If the node was removed this function also removes any incident\n * edges.\n * Complexity: O(1).\n */\n removeNode(v) {\n var self = this;\n if (Object.hasOwn(this._nodes, v)) {\n var removeEdge = e => self.removeEdge(self._edgeObjs[e]);\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n this.children(v).forEach(function(child) {\n self.setParent(child);\n });\n delete this._children[v];\n }\n Object.keys(this._in[v]).forEach(removeEdge);\n delete this._in[v];\n delete this._preds[v];\n Object.keys(this._out[v]).forEach(removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n\n /**\n * Sets node p as a parent for node v if it is defined, or removes the\n * parent for v if p is undefined. Method throws an exception in case of\n * invoking it in context of noncompound graph.\n * Average-case complexity: O(1).\n */\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error(\"Cannot set parent in a non-compound graph\");\n }\n\n if (parent === undefined) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += \"\";\n for (var ancestor = parent; ancestor !== undefined; ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error(\"Setting \" + parent+ \" as parent of \" + v +\n \" would create a cycle\");\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n\n /**\n * Gets parent node for node v.\n * Complexity: O(1).\n */\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n\n /**\n * Gets list of direct children of node v.\n * Complexity: O(1).\n */\n children(v = GRAPH_NODE) {\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return Object.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n\n /**\n * Return all nodes that are predecessors of the specified node or undefined if node v is not in\n * the graph. Behavior is undefined for undirected graphs - use neighbors instead.\n * Complexity: O(|V|).\n */\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return Object.keys(predsV);\n }\n }\n\n /**\n * Return all nodes that are successors of the specified node or undefined if node v is not in\n * the graph. Behavior is undefined for undirected graphs - use neighbors instead.\n * Complexity: O(|V|).\n */\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return Object.keys(sucsV);\n }\n }\n\n /**\n * Return all nodes that are predecessors or successors of the specified node or undefined if\n * node v is not in the graph.\n * Complexity: O(|V|).\n */\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n const union = new Set(preds);\n for (var succ of this.successors(v)) {\n union.add(succ);\n }\n\n return Array.from(union.values());\n }\n }\n\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n\n /**\n * Creates new graph with nodes filtered via filter. Edges incident to rejected node\n * are also removed. In case of compound graph, if parent is rejected by filter,\n * than all its children are rejected too.\n * Average-case complexity: O(|E|+|V|).\n */\n filterNodes(filter) {\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n Object.entries(this._nodes).forEach(function([v, value]) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n Object.values(this._edgeObjs).forEach(function(e) {\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n copy.nodes().forEach(v => copy.setParent(v, findParent(v)));\n }\n\n return copy;\n }\n\n /* === Edge functions ========== */\n\n /**\n * Sets the default edge label or factory function. This label will be\n * assigned as default label in case if no label was specified while setting\n * an edge or this function will be invoked each time when setting an edge\n * with no label specified and returned value * will be used as a label for edge.\n * Complexity: O(1).\n */\n setDefaultEdgeLabel(newDefault) {\n this._defaultEdgeLabelFn = newDefault;\n if (typeof newDefault !== 'function') {\n this._defaultEdgeLabelFn = () => newDefault;\n }\n\n return this;\n }\n\n /**\n * Gets the number of edges in the graph.\n * Complexity: O(1).\n */\n edgeCount() {\n return this._edgeCount;\n }\n\n /**\n * Gets edges of the graph. In case of compound graph subgraphs are not considered.\n * Complexity: O(|E|).\n */\n edges() {\n return Object.values(this._edgeObjs);\n }\n\n /**\n * Establish an edges path over the nodes in nodes list. If some edge is already\n * exists, it will update its label, otherwise it will create an edge between pair\n * of nodes with label provided or default label if no label provided.\n * Complexity: O(|nodes|).\n */\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n vs.reduce(function(v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n\n /**\n * Creates or updates the label for the edge (v, w) with the optionally supplied\n * name. If label is supplied it is set as the value for the edge. If label is not\n * supplied and the edge was created by this call then the default edge label will\n * be assigned. The name parameter is only useful with multigraphs.\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === \"object\" && arg0 !== null && \"v\" in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = \"\" + v;\n w = \"\" + w;\n if (name !== undefined) {\n name = \"\" + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (Object.hasOwn(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (name !== undefined && !this._isMultigraph) {\n throw new Error(\"Cannot set a named edge when isMultigraph = false\");\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n\n /**\n * Gets the label for the specified edge.\n * Complexity: O(1).\n */\n edge(v, w, name) {\n var e = (arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name));\n return this._edgeLabels[e];\n }\n\n /**\n * Gets the label for the specified edge and converts it to an object.\n * Complexity: O(1)\n */\n edgeAsObj() {\n const edge = this.edge(...arguments);\n if (typeof edge !== \"object\") {\n return {label: edge};\n }\n\n return edge;\n }\n\n /**\n * Detects whether the graph contains specified edge or not. No subgraphs are considered.\n * Complexity: O(1).\n */\n hasEdge(v, w, name) {\n var e = (arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name));\n return Object.hasOwn(this._edgeLabels, e);\n }\n\n /**\n * Removes the specified edge from the graph. No subgraphs are considered.\n * Complexity: O(1).\n */\n removeEdge(v, w, name) {\n var e = (arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name));\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n\n /**\n * Return all edges that point to the node v. Optionally filters those edges down to just those\n * coming from node u. Behavior is undefined for undirected graphs - use nodeEdges instead.\n * Complexity: O(|E|).\n */\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = Object.values(inV);\n if (!u) {\n return edges;\n }\n return edges.filter(edge => edge.v === u);\n }\n }\n\n /**\n * Return all edges that are pointed at by node v. Optionally filters those edges down to just\n * those point to w. Behavior is undefined for undirected graphs - use nodeEdges instead.\n * Complexity: O(|E|).\n */\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = Object.values(outV);\n if (!w) {\n return edges;\n }\n return edges.filter(edge => edge.w === w);\n }\n }\n\n /**\n * Returns all edges to or from node v regardless of direction. Optionally filters those edges\n * down to just those between nodes v and w regardless of direction.\n * Complexity: O(|E|).\n */\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) { delete map[k]; }\n}\n\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = \"\" + v_;\n var w = \"\" + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM +\n (name === undefined ? DEFAULT_EDGE_NAME : name);\n}\n\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = \"\" + v_;\n var w = \"\" + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n\nmodule.exports = Graph;\n","// Includes only the \"core\" of graphlib\nmodule.exports = {\n Graph: require(\"./graph\"),\n version: require(\"./version\")\n};\n","var Graph = require(\"./graph\");\n\nmodule.exports = {\n write: write,\n read: read\n};\n\n/**\n * Creates a JSON representation of the graph that can be serialized to a string with\n * JSON.stringify. The graph can later be restored using json.read.\n */\nfunction write(g) {\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound()\n },\n nodes: writeNodes(g),\n edges: writeEdges(g)\n };\n\n if (g.graph() !== undefined) {\n json.value = structuredClone(g.graph());\n }\n return json;\n}\n\nfunction writeNodes(g) {\n return g.nodes().map(function(v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n var node = { v: v };\n if (nodeValue !== undefined) {\n node.value = nodeValue;\n }\n if (parent !== undefined) {\n node.parent = parent;\n }\n return node;\n });\n}\n\nfunction writeEdges(g) {\n return g.edges().map(function(e) {\n var edgeValue = g.edge(e);\n var edge = { v: e.v, w: e.w };\n if (e.name !== undefined) {\n edge.name = e.name;\n }\n if (edgeValue !== undefined) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\n/**\n * Takes JSON as input and returns the graph representation.\n *\n * @example\n * var g2 = graphlib.json.read(JSON.parse(str));\n * g2.nodes();\n * // ['a', 'b']\n * g2.edges()\n * // [ { v: 'a', w: 'b' } ]\n */\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n json.nodes.forEach(function(entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n json.edges.forEach(function(entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","module.exports = '2.2.4';\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function\n /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node\n /*: HTMLStyleElement */\n ) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n /* : Node */\n\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node\n /*: HTMLStyleElement */\n ) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n /*: (\n selector: string,\n serialized: SerializedStyles,\n sheet: StyleSheet,\n shouldCache: boolean\n ) => string | void */\n\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function\n /*: void */\n insert(selector\n /*: string */\n , serialized\n /*: SerializedStyles */\n , sheet\n /*: StyleSheet */\n , shouldCache\n /*: boolean */\n ) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache\n /*: EmotionCache */\n = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport default weakMemoize;\n","import hoistNonReactStatics$1 from 'hoist-non-react-statics';\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n});\n\nexport default hoistNonReactStatics;\n","import { createContext, useContext, forwardRef, createElement } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../isolated-hoist-non-react-statics-do-not-use-this-in-your-code/dist/emotion-react-isolated-hoist-non-react-statics-do-not-use-this-in-your-code.browser.esm.js';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type;\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z0-9$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z0-9$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n\n return ele;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","import { createElement, useContext, useRef, useLayoutEffect } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-99289b21.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-99289b21.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../isolated-hoist-non-react-statics-do-not-use-this-in-your-code/dist/emotion-react-isolated-hoist-non-react-statics-do-not-use-this-in-your-code.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.5.0\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"isolated-hoist-non-react-statics-do-not-use-this-in-your-code\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"mitchellhamilton \",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.13.10\",\n\t\t\"@emotion/cache\": \"^11.5.0\",\n\t\t\"@emotion/serialize\": \"^1.0.2\",\n\t\t\"@emotion/sheet\": \"^1.0.3\",\n\t\t\"@emotion/utils\": \"^1.0.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.2.5\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.13.10\",\n\t\t\"@emotion/css\": \"11.5.0\",\n\t\t\"@emotion/css-prettifier\": \"1.0.0\",\n\t\t\"@emotion/server\": \"11.4.0\",\n\t\t\"@emotion/styled\": \"11.3.0\",\n\t\t\"@types/react\": \"^16.9.11\",\n\t\tdtslint: \"^0.3.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./isolated-hoist-non-react-statics-do-not-use-this-in-your-code.js\"\n\t\t],\n\t\tumdName: \"emotionReact\"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useLayoutEffect(function () {\n var key = cache.key + \"-global\";\n var sheet = new StyleSheet({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useLayoutEffect(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n\n {\n insertStyles(cache, serialized, false);\n }\n\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n\n return ele;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g;\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n }\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { useContext, createElement } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var finalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n var rules = insertStyles(cache, serialized, typeof finalTag === 'string');\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n var ele = /*#__PURE__*/createElement(finalTag, newProps);\n\n return ele;\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","var snippet = function snippet(_ref) {\n var orgId = _ref.orgId,\n _ref$namespace = _ref.namespace,\n namespace = _ref$namespace === void 0 ? 'FS' : _ref$namespace,\n _ref$debug = _ref.debug,\n debug = _ref$debug === void 0 ? false : _ref$debug,\n _ref$host = _ref.host,\n host = _ref$host === void 0 ? 'fullstory.com' : _ref$host,\n _ref$script = _ref.script,\n script = _ref$script === void 0 ? 'edge.fullstory.com/s/fs.js' : _ref$script;\n\n if (!orgId) {\n throw new Error('FullStory orgId is a required parameter');\n }\n\n window['_fs_debug'] = debug;\n window['_fs_host'] = host;\n window['_fs_script'] = script;\n window['_fs_org'] = orgId;\n window['_fs_namespace'] = namespace;\n\n (function (m, n, e, t, l, o, g, y) {\n if (e in m) {\n if (m.console && m.console.log) {\n m.console.log('FullStory namespace conflict. Please set window[\"_fs_namespace\"].');\n }\n\n return;\n }\n\n g = m[e] = function (a, b, s) {\n g.q ? g.q.push([a, b, s]) : g._api(a, b, s);\n };\n\n g.q = [];\n o = n.createElement(t);\n o.async = 1;\n o.crossOrigin = 'anonymous';\n o.src = 'https://' + _fs_script;\n y = n.getElementsByTagName(t)[0];\n y.parentNode.insertBefore(o, y);\n\n g.identify = function (i, v, s) {\n g(l, {\n uid: i\n }, s);\n if (v) g(l, v, s);\n };\n\n g.setUserVars = function (v, s) {\n g(l, v, s);\n };\n\n g.event = function (i, v, s) {\n g('event', {\n n: i,\n p: v\n }, s);\n };\n\n g.anonymize = function () {\n g.identify(!!0);\n };\n\n g.shutdown = function () {\n g(\"rec\", !1);\n };\n\n g.restart = function () {\n g(\"rec\", !0);\n };\n\n g.log = function (a, b) {\n g(\"log\", [a, b]);\n };\n\n g.consent = function (a) {\n g(\"consent\", !arguments.length || a);\n };\n\n g.identifyAccount = function (i, v) {\n o = 'account';\n v = v || {};\n v.acctId = i;\n g(o, v);\n };\n\n g.clearUserCookie = function () {};\n\n g.setVars = function (n, p) {\n g('setVars', [n, p]);\n };\n\n g._w = {};\n y = 'XMLHttpRequest';\n g._w[y] = m[y];\n y = 'fetch';\n g._w[y] = m[y];\n if (m[y]) m[y] = function () {\n return g._w[y].apply(this, arguments);\n };\n g._v = \"1.3.0\";\n })(window, document, window['_fs_namespace'], 'script', 'user');\n};\n\nvar fs = function fs() {\n return window[window._fs_namespace];\n};\n\nvar ensureSnippetLoaded = function ensureSnippetLoaded() {\n var snippetLoaded = !!fs();\n\n if (!snippetLoaded) {\n throw Error('FullStory is not loaded, please ensure the init function is invoked before calling FullStory API functions');\n }\n};\n\nvar hasFullStoryWithFunction = function hasFullStoryWithFunction() {\n ensureSnippetLoaded();\n\n for (var _len = arguments.length, testNames = new Array(_len), _key = 0; _key < _len; _key++) {\n testNames[_key] = arguments[_key];\n }\n\n return testNames.every(function (current) {\n return fs()[current];\n });\n};\n\nvar guard = function guard(name) {\n return function () {\n if (window._fs_dev_mode) {\n var message = \"FullStory is in dev mode and is not recording: \".concat(name, \" method not executed\");\n console.warn(message);\n return message;\n }\n\n if (hasFullStoryWithFunction(name)) {\n var _fs;\n\n return (_fs = fs())[name].apply(_fs, arguments);\n }\n\n console.warn(\"FS.\".concat(name, \" not ready\"));\n return null;\n };\n};\n\nvar event = guard('event');\nvar log = guard('log');\nvar getCurrentSessionURL = guard('getCurrentSessionURL');\nvar identify = guard('identify');\nvar setUserVars = guard('setUserVars');\nvar consent = guard('consent');\nvar shutdown = guard('shutdown');\nvar restart = guard('restart');\nvar anonymize = guard('anonymize');\nvar setVars = guard('setVars');\n\nvar _init = function _init(options, readyCallback) {\n if (fs()) {\n console.warn('The FullStory snippet has already been defined elsewhere (likely in the element)');\n return;\n }\n\n if (options.recordCrossDomainIFrames) {\n window._fs_run_in_iframe = true;\n }\n\n if (options.recordOnlyThisIFrame) {\n window._fs_is_outer_script = true;\n }\n\n snippet(options);\n\n if (readyCallback) {\n fs()('observe', {\n type: 'start',\n callback: readyCallback\n });\n }\n\n if (options.devMode === true) {\n var message = 'FullStory was initialized in devMode and will stop recording';\n event('FullStory Dev Mode', {\n message_str: message\n });\n shutdown();\n window._fs_dev_mode = true;\n console.warn(message);\n }\n};\n\nvar initOnce = function initOnce(fn, message) {\n return function () {\n if (window._fs_initialized) {\n if (message) console.warn(message);\n return;\n }\n\n fn.apply(void 0, arguments);\n window._fs_initialized = true;\n };\n};\n\nvar init = initOnce(_init, 'FullStory init has already been called once, additional invocations are ignored');\nvar isInitialized = function isInitialized() {\n return !!window._fs_initialized;\n};\n\nexport { anonymize, consent, event, getCurrentSessionURL, identify, init, isInitialized, log, restart, setUserVars, setVars, shutdown };\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","var resizeObservers = [];\nexport { resizeObservers };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\" + (toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return Object.freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a, _b;\n var scope = (_b = (_a = obj) === null || _a === void 0 ? void 0 : _a.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return Object.freeze({\n inlineSize: (switchSizes ? blockSize : inlineSize) || 0,\n blockSize: (switchSizes ? inlineSize : blockSize) || 0\n });\n};\nvar zeroBoxes = Object.freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = Object.freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = [boxes.borderBoxSize];\n this.contentBoxSize = [boxes.contentBoxSize];\n this.devicePixelContentBoxSize = [boxes.devicePixelContentBoxSize];\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.activateFeatures = undefined;\n\nvar _lensPath = require('ramda/src/lensPath');\n\nvar _lensPath2 = _interopRequireDefault(_lensPath);\n\nvar _set = require('ramda/src/set');\n\nvar _set2 = _interopRequireDefault(_set);\n\nvar _view = require('ramda/src/view');\n\nvar _view2 = _interopRequireDefault(_view);\n\nvar _map = require('ramda/src/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar nameLens = (0, _lensPath2.default)(['name']);\nvar isActiveLens = (0, _lensPath2.default)(['isActive']);\n\nvar getName = (0, _view2.default)(nameLens);\nvar setIsActive = (0, _set2.default)(isActiveLens);\n\nvar activateFeatures = exports.activateFeatures = function activateFeatures(featureNamesToEnable) {\n return (0, _map2.default)(function (feature) {\n return featureNamesToEnable.includes(getName(feature)) ? setIsActive(true, feature) : feature;\n });\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createExpressMiddleware = undefined;\n\nvar _curry = require('ramda/src/curry');\n\nvar _curry2 = _interopRequireDefault(_curry);\n\nvar _url = require('url');\n\nvar _isActiveFeatureName = require('./is-active-feature-name');\n\nvar _mergeFeatureNames = require('./merge-feature-names');\n\nvar _getQueryFeatureNames = require('./get-query-feature-names');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar setStatus = function setStatus(res, isActiveFeatureName) {\n return isActiveFeatureName ? res.status(200) : res.status(404);\n};\n\n// ({ features: [...String] }, requiredFeature: String, methods?: Object) => (req, res, next) => void\nvar createExpressMiddleware = exports.createExpressMiddleware = (0, _curry2.default)(function (_ref, requiredFeature, methods) {\n var features = _ref.features;\n return function (req, res, next) {\n var parsedUrl = (0, _url.parse)(req.url, true);\n var query = parsedUrl.query;\n\n var updatedFeatures = (0, _mergeFeatureNames.mergeFeatureNames)(features, (0, _getQueryFeatureNames.getQueryFeatureNames)(query));\n setStatus(res, (0, _isActiveFeatureName.isActiveFeatureName)(requiredFeature, updatedFeatures));\n\n var handler = methods[req.method.toLowerCase()];\n if (handler !== undefined && typeof handler === 'function') {\n return handler(req, res);\n }\n\n next();\n };\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getActiveFeatureNames = undefined;\n\nvar _map = require('ramda/src/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nvar _compose = require('ramda/src/compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _filter = require('ramda/src/filter');\n\nvar _filter2 = _interopRequireDefault(_filter);\n\nvar _lensProp = require('ramda/src/lensProp');\n\nvar _lensProp2 = _interopRequireDefault(_lensProp);\n\nvar _view = require('ramda/src/view');\n\nvar _view2 = _interopRequireDefault(_view);\n\nvar _getIsEnabled = require('./get-is-enabled');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar nameLens = (0, _lensProp2.default)('name');\nvar getName = (0, _view2.default)(nameLens);\n\n// filterDisabled = [...Feature] => [...Feature];\nvar filterDisabled = function filterDisabled() {\n var features = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return (0, _filter2.default)(function (x) {\n return (0, _getIsEnabled.getIsEnabled)(features, getName(x));\n }, features);\n};\n\n// getActiveFeatureNames = [...Feature] => [...String]\nvar getActiveFeatureNames = exports.getActiveFeatureNames = (0, _compose2.default)((0, _map2.default)(getName), filterDisabled);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getBrowserQueryFeatureNames = undefined;\n\nvar _urlParse = require('url-parse');\n\nvar _urlParse2 = _interopRequireDefault(_urlParse);\n\nvar _getQueryFeatureNames = require('./get-query-feature-names');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar getBrowserQueryFeatureNames = exports.getBrowserQueryFeatureNames = function getBrowserQueryFeatureNames() {\n var search = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : typeof window === 'undefined' ? '' : window.location.search;\n\n var _parse = (0, _urlParse2.default)(search, true),\n query = _parse.query;\n\n return (0, _getQueryFeatureNames.getQueryFeatureNames)(query);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCurrentActiveFeatureNames = undefined;\n\nvar _pipe = require('ramda/src/pipe');\n\nvar _pipe2 = _interopRequireDefault(_pipe);\n\nvar _getActiveFeatureNames = require('./get-active-feature-names');\n\nvar _getReqQueryFeatureNames = require('./get-req-query-feature-names');\n\nvar _getBrowserQueryFeatureNames = require('./get-browser-query-feature-names');\n\nvar _activateFeatures = require('./activate-features');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar activateReqFeatureNames = (0, _pipe2.default)(_getReqQueryFeatureNames.getReqQueryFeatureNames, _activateFeatures.activateFeatures);\nvar activateSearchFeatureNames = (0, _pipe2.default)(_getBrowserQueryFeatureNames.getBrowserQueryFeatureNames, _activateFeatures.activateFeatures);\n\nvar flow = function flow(req, search) {\n return (0, _pipe2.default)(activateReqFeatureNames(req), activateSearchFeatureNames(search), _getActiveFeatureNames.getActiveFeatureNames);\n};\n\nvar getCurrentActiveFeatureNames = exports.getCurrentActiveFeatureNames = function getCurrentActiveFeatureNames() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$initialFeatures = _ref.initialFeatures,\n initialFeatures = _ref$initialFeatures === undefined ? [] : _ref$initialFeatures,\n req = _ref.req,\n search = _ref.search;\n\n return flow(req, search)(initialFeatures);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getIsEnabled = undefined;\n\nvar _find = require('ramda/src/find');\n\nvar _find2 = _interopRequireDefault(_find);\n\nvar _curry = require('ramda/src/curry');\n\nvar _curry2 = _interopRequireDefault(_curry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// matchName = s => x => boolean;\nvar matchName = function matchName(s) {\n return function (x) {\n return x.name === s;\n };\n};\n\n// isActive = x: Feature => boolean\nvar isActive = function isActive(x) {\n return x && x.isActive ? true : false;\n};\n\n// hasDependencies = x: Feature => boolean\nvar hasDependencies = function hasDependencies(x) {\n return x.dependencies && x.dependencies.length > 0;\n};\n\n// checkDependencies = [...Feature] => [...String] => boolean;\nvar checkDependencies = function checkDependencies(features) {\n return function (names) {\n return names.reduce(function (acc, x) {\n return acc ? getIsEnabled(features, x) : acc;\n }, true);\n };\n};\n\n// getIsEnabled = [...Feature] => String => boolean\nvar getIsEnabled = exports.getIsEnabled = (0, _curry2.default)(function () {\n var features = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var featureName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var feature = (0, _find2.default)(matchName(featureName))(features);\n /**\n * If the feature doesn't exist or is not enabled then\n * return false.\n */\n if (!isActive(feature)) return false;\n\n /**\n * If the feature doesn't have any requirements, return true.\n */\n if (!hasDependencies(feature)) return true;\n\n /**\n * If the feature has dependencies, then check for any disabled dependencies\n */\n return checkDependencies(features)(feature.dependencies);\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar getQueryFeatureNames = exports.getQueryFeatureNames = function getQueryFeatureNames() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n ft = _ref.ft;\n\n return ft ? ft.split(',') : [];\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getReqQueryFeatureNames = undefined;\n\nvar _getQueryFeatureNames = require('./get-query-feature-names');\n\nvar getReqQueryFeatureNames = exports.getReqQueryFeatureNames = function getReqQueryFeatureNames() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n query = _ref.query;\n\n return !query ? [] : (0, _getQueryFeatureNames.getQueryFeatureNames)(query);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _activateFeatures = require('./activate-features');\n\nObject.defineProperty(exports, 'activateFeatures', {\n enumerable: true,\n get: function get() {\n return _activateFeatures.activateFeatures;\n }\n});\n\nvar _getActiveFeatureNames = require('./get-active-feature-names');\n\nObject.defineProperty(exports, 'getActiveFeatureNames', {\n enumerable: true,\n get: function get() {\n return _getActiveFeatureNames.getActiveFeatureNames;\n }\n});\n\nvar _mergeFeatureNames = require('./merge-feature-names');\n\nObject.defineProperty(exports, 'mergeFeatureNames', {\n enumerable: true,\n get: function get() {\n return _mergeFeatureNames.mergeFeatureNames;\n }\n});\n\nvar _isActiveFeatureName = require('./is-active-feature-name');\n\nObject.defineProperty(exports, 'isActiveFeatureName', {\n enumerable: true,\n get: function get() {\n return _isActiveFeatureName.isActiveFeatureName;\n }\n});\n\nvar _getQueryFeatureNames = require('./get-query-feature-names');\n\nObject.defineProperty(exports, 'getQueryFeatureNames', {\n enumerable: true,\n get: function get() {\n return _getQueryFeatureNames.getQueryFeatureNames;\n }\n});\n\nvar _removeFeatureNames = require('./remove-feature-names');\n\nObject.defineProperty(exports, 'removeFeatureNames', {\n enumerable: true,\n get: function get() {\n return _removeFeatureNames.removeFeatureNames;\n }\n});\n\nvar _getReqQueryFeatureNames = require('./get-req-query-feature-names');\n\nObject.defineProperty(exports, 'getReqQueryFeatureNames', {\n enumerable: true,\n get: function get() {\n return _getReqQueryFeatureNames.getReqQueryFeatureNames;\n }\n});\n\nvar _getCurrentActiveFeatureNames = require('./get-current-active-feature-names');\n\nObject.defineProperty(exports, 'getCurrentActiveFeatureNames', {\n enumerable: true,\n get: function get() {\n return _getCurrentActiveFeatureNames.getCurrentActiveFeatureNames;\n }\n});\n\nvar _getBrowserQueryFeatureNames = require('./get-browser-query-feature-names');\n\nObject.defineProperty(exports, 'getBrowserQueryFeatureNames', {\n enumerable: true,\n get: function get() {\n return _getBrowserQueryFeatureNames.getBrowserQueryFeatureNames;\n }\n});\n\nvar _createExpressMiddleware = require('./create-express-middleware');\n\nObject.defineProperty(exports, 'createExpressMiddleware', {\n enumerable: true,\n get: function get() {\n return _createExpressMiddleware.createExpressMiddleware;\n }\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isActiveFeatureName = undefined;\n\nvar _curry = require('ramda/src/curry');\n\nvar _curry2 = _interopRequireDefault(_curry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isActiveFeatureName = exports.isActiveFeatureName = (0, _curry2.default)(function () {\n var featureName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var features = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return features.includes(featureName);\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeFeatureNames = undefined;\n\nvar _union = require('lodash/union');\n\nvar _union2 = _interopRequireDefault(_union);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeFeatureNames = exports.mergeFeatureNames = _union2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.removeFeatureNames = undefined;\n\nvar _difference = require('lodash/difference');\n\nvar _difference2 = _interopRequireDefault(_difference);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar removeFeatureNames = exports.removeFeatureNames = _difference2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.configureFeature = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _curry = require('./curry');\n\nvar _curry2 = _interopRequireDefault(_curry);\n\nvar _feature = require('./feature');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar configureFeature = exports.configureFeature = (0, _curry2.default)(function (InactiveComponent, name, ActiveComponent) {\n return function (props) {\n return _react2.default.createElement(_feature.Feature, {\n name: name,\n inactiveComponent: function inactiveComponent() {\n return _react2.default.createElement(InactiveComponent, props);\n },\n activeComponent: function activeComponent() {\n return _react2.default.createElement(ActiveComponent, props);\n }\n });\n };\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Provider = exports.Consumer = exports.FeatureTogglesContext = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar FeatureTogglesContext = exports.FeatureTogglesContext = _react2.default.createContext([]);\nvar Consumer = FeatureTogglesContext.Consumer,\n Provider = FeatureTogglesContext.Provider;\nexports.Consumer = Consumer;\nexports.Provider = Provider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar curry = function curry(f) {\n var arr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return function (a) {\n return a.length === f.length ? f.apply(undefined, _toConsumableArray(a)) : curry(f, a);\n }([].concat(_toConsumableArray(arr), args));\n };\n};\n\nexports.default = curry;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FeatureToggles = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _context = require('./context');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar FeatureToggles = exports.FeatureToggles = function FeatureToggles(_ref) {\n var _ref$features = _ref.features,\n features = _ref$features === undefined ? [] : _ref$features,\n children = _ref.children;\n return _react2.default.createElement(\n _context.Provider,\n { value: features },\n children\n );\n};\n\nFeatureToggles.propTypes = {\n features: _propTypes2.default.array\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Feature = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _context = require('./context');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar noop = function noop() {\n return null;\n};\n\nvar Feature = exports.Feature = function Feature(_ref) {\n var activeComponent = _ref.activeComponent,\n children = _ref.children,\n _ref$inactiveComponen = _ref.inactiveComponent,\n inactiveComponent = _ref$inactiveComponen === undefined ? noop : _ref$inactiveComponen,\n name = _ref.name;\n return _react2.default.createElement(\n _context.Consumer,\n null,\n function (features) {\n var Component = features.includes(name) ? activeComponent : inactiveComponent;\n return activeComponent ? _react2.default.createElement(Component, null) : children({ features: features });\n }\n );\n};\n\nFeature.propTypes = {\n activeComponent: _propTypes2.default.func,\n children: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.node]),\n inactiveComponent: _propTypes2.default.func,\n name: _propTypes2.default.string\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _configureFeature = require('./configure-feature');\n\nObject.defineProperty(exports, 'configureFeature', {\n enumerable: true,\n get: function get() {\n return _configureFeature.configureFeature;\n }\n});\n\nvar _featureToggles = require('./feature-toggles');\n\nObject.defineProperty(exports, 'FeatureToggles', {\n enumerable: true,\n get: function get() {\n return _featureToggles.FeatureToggles;\n }\n});\n\nvar _feature = require('./feature');\n\nObject.defineProperty(exports, 'Feature', {\n enumerable: true,\n get: function get() {\n return _feature.Feature;\n }\n});\n\nvar _withFeatureToggles = require('./with-feature-toggles');\n\nObject.defineProperty(exports, 'withFeatureToggles', {\n enumerable: true,\n get: function get() {\n return _withFeatureToggles.withFeatureToggles;\n }\n});\n\nvar _context = require('./context');\n\nObject.defineProperty(exports, 'FeatureTogglesContext', {\n enumerable: true,\n get: function get() {\n return _context.FeatureTogglesContext;\n }\n});\n\nvar _withFeatures = require('./with-features');\n\nObject.defineProperty(exports, 'withFeatures', {\n enumerable: true,\n get: function get() {\n return _withFeatures.withFeatures;\n }\n});\n\nvar _useFeatures = require('./use-features');\n\nObject.defineProperty(exports, 'useFeatures', {\n enumerable: true,\n get: function get() {\n return _useFeatures.useFeatures;\n }\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useFeatures = undefined;\n\nvar _react = require('react');\n\nvar _context = require('./context');\n\nvar useFeatures = exports.useFeatures = function useFeatures() {\n return (0, _react.useContext)(_context.FeatureTogglesContext);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withFeatureToggles = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _featureToggles = require('./feature-toggles');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar withFeatureToggles = exports.withFeatureToggles = function withFeatureToggles() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n features = _ref.features;\n\n return function (Component) {\n return function (props) {\n return _react2.default.createElement(\n _featureToggles.FeatureToggles,\n { features: features },\n _react2.default.createElement(Component, props)\n );\n };\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withFeatures = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _context = require('./context');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar withFeatures = exports.withFeatures = function withFeatures(Component) {\n return function (props) {\n return _react2.default.createElement(\n _context.FeatureTogglesContext.Consumer,\n null,\n function (features) {\n return _react2.default.createElement(Component, _extends({}, props, { features: features }));\n }\n );\n };\n};","export default function getBoundingClientRect(element) {\n var rect = element.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n y: rect.top\n };\n}","export default function getWindow(node) {\n if ({}.toString.call(node) !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getWindow from \"./getWindow.js\";\n/*:: declare function isElement(node: mixed): boolean %checks(node instanceof\n Element); */\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement;\n}\n/*:: declare function isHTMLElement(node: mixed): boolean %checks(node instanceof\n HTMLElement); */\n\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement;\n}\n\nexport { isElement, isHTMLElement };","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\n\nfunction toNumber(cssValue) {\n return parseFloat(cssValue) || 0;\n}\n\nexport default function getBorders(element) {\n var computedStyle = isHTMLElement(element) ? getComputedStyle(element) : {};\n return {\n top: toNumber(computedStyle.borderTopWidth),\n right: toNumber(computedStyle.borderRightWidth),\n bottom: toNumber(computedStyle.borderBottomWidth),\n left: toNumber(computedStyle.borderLeftWidth)\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getBorders from \"./getBorders.js\";\nimport { isHTMLElement } from \"./instanceOf.js\"; // offsets without `border`\n\nfunction getInnerOffsets(offsetParent) {\n var rect = getBoundingClientRect(offsetParent);\n var borders = getBorders(offsetParent);\n return {\n x: rect.x + borders.left,\n y: rect.y + borders.top\n };\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var rect = getBoundingClientRect(elementOrVirtualElement);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (!isFixed) {\n if (getNodeName(offsetParent) !== 'body') {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getInnerOffsets(offsetParent);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","// Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\nexport default function getLayoutRect(element) {\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n}","import getNodeName from \"./getNodeName.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return element.parentNode || // DOM Element detected\n // $FlowFixMe: need a better way to handle this...\n element.host || // ShadowRoot detected\n document.ownerDocument || // Fallback to ownerDocument if available\n document.documentElement // Or to documentElement if everything else fails\n ;\n}","import getParentNode from \"./getParentNode.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node)) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(node),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n if (/auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX)) {\n return node;\n }\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getWindow from \"./getWindow.js\";\nexport default function listScrollParents(element, list) {\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = getNodeName(scrollParent) === 'body';\n var target = isBody ? getWindow(scrollParent) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\"; // https://stackoverflow.com/a/9851769/2059996\n\nvar isFirefox = function isFirefox() {\n return typeof window.InstallTrigger !== 'undefined';\n};\n\nfunction getTrueOffsetParent(element) {\n var offsetParent;\n\n if (!isHTMLElement(element) || !(offsetParent = element.offsetParent) || // https://github.com/popperjs/popper.js/issues/837\n isFirefox() && getComputedStyle(offsetParent).position === 'fixed') {\n return null;\n }\n\n return offsetParent;\n}\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element); // Find the nearest non-table offsetParent\n\n while (offsetParent && isTableElement(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static') {\n return window;\n }\n\n return offsetParent || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements =\n/*#__PURE__*/\nbasePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements =\n/*#__PURE__*/\n[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nexport * from \"./types.js\";\nexport * from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided to Popper, they must be either a valid DOM element, virtual element, or a jQuery-wrapped DOM element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, {}, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(options) {\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, {}, state.options, {}, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers([].concat(state.options.modifiers.filter(function (modifier) {\n return !defaultModifiers.find(function (_ref) {\n var name = _ref.name;\n return name === modifier.name;\n });\n }), defaultModifiers.map(function (defaultModifier) {\n return Object.assign({}, defaultModifier, {}, state.options.modifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === defaultModifier.name;\n }));\n }))); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref3) {\n var name = _ref3.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = orderedModifiers.find(function (_ref4) {\n var name = _ref4.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n } // Strip out disabled modifiers\n\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref5) {\n var name = _ref5.name,\n _ref5$options = _ref5.options,\n options = _ref5$options === void 0 ? {} : _ref5$options,\n effect = _ref5.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper =\n/*#__PURE__*/\npopperGenerator();","import getWindow from \"../dom-utils/getWindow.js\";\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n}\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = Math.floor(offsets[mainAxis]) - Math.floor(reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = Math.floor(offsets[mainAxis]) + Math.ceil(reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","export default function getDocumentElement(element) {\n // $FlowFixMe: assume body is always available\n return element.ownerDocument.documentElement;\n}","import { top, left, right, bottom } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsets(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = window.devicePixelRatio || 1;\n return {\n x: Math.round(x * dpr) / dpr || 0,\n y: Math.round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive;\n\n var _roundOffsets = roundOffsets(offsets),\n x = _roundOffsets.x,\n y = _roundOffsets.y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n }\n\n if (placement === top) {\n sideY = bottom;\n y -= offsetParent.clientHeight - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left) {\n sideX = right;\n x -= offsetParent.clientWidth - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (window.devicePixelRatio || 1) < 2 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref3) {\n var state = _ref3.state,\n options = _ref3.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n }; // popper offsets are always available\n\n state.styles.popper = Object.assign({}, state.styles.popper, {}, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive\n }))); // arrow offsets may not be available\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, {}, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n}\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\";\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n state.modifiersData[name] = data;\n}\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n return {\n width: win.innerWidth,\n height: win.innerHeight,\n x: 0,\n y: 0\n };\n}","import getCompositeRect from \"./getCompositeRect.js\";\nimport getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getDocumentRect(element) {\n var win = getWindow(element);\n var winScroll = getWindowScroll(element);\n var documentRect = getCompositeRect(getDocumentElement(element), win);\n documentRect.height = Math.max(documentRect.height, win.innerHeight);\n documentRect.width = Math.max(documentRect.width, win.innerWidth);\n documentRect.x = -winScroll.scrollLeft;\n documentRect.y = -winScroll.scrollTop;\n return documentRect;\n}","import getBorders from \"./getBorders.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getWindow from \"./getWindow.js\"; // Borders + scrollbars\n\nexport default function getDecorations(element) {\n var borders = getBorders(element);\n var win = getWindow(element);\n var right = element.offsetWidth - element.clientWidth - borders.right;\n var bottom = element.offsetHeight - element.clientHeight - borders.bottom;\n\n if (getNodeName(element) === 'html') {\n right = win.innerWidth - element.clientWidth;\n bottom = win.innerHeight - element.clientHeight;\n }\n\n return {\n top: borders.top,\n right: right,\n bottom: bottom,\n left: borders.left\n };\n}","export default function contains(parent, child) {\n // $FlowFixMe: hasOwnProperty doesn't seem to work in tests\n var isShadow = Boolean(child.getRootNode && child.getRootNode().host); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (isShadow) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDecorations from \"./getDecorations.js\";\nimport contains from \"./contains.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(element);\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n }\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement);\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n var decorations = getDecorations(isHTMLElement(clippingParent) ? clippingParent : getDocumentElement(element));\n accRect.top = Math.max(rect.top + decorations.top, accRect.top);\n accRect.right = Math.min(rect.right - decorations.right, accRect.right);\n accRect.bottom = Math.min(rect.bottom - decorations.bottom, accRect.bottom);\n accRect.left = Math.max(rect.left + decorations.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), {}, paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\";\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var referenceElement = state.elements.reference;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(referenceElement);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, {}, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements; // $FlowFixMe: Flow seems to have problems with two array unions...\n\n var overflows = placements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","export default function uniqueBy(arr, fn) {\n var identifiers = new Set();\n return arr.filter(function (item) {\n var identifier = fn(item);\n\n if (!identifiers.has(identifier)) {\n identifiers.add(identifier);\n return true;\n }\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport uniqueBy from \"../utils/uniqueBy.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\";\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = uniqueBy([preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return getBasePlacement(placement) === auto ? acc.concat(computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations\n })) : acc.concat(placement);\n }, []), function (placement) {\n return placement;\n });\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [overflow[_basePlacement] <= 0, overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0];\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n}\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","export default function within(min, value, max) {\n return Math.max(min, Math.min(value, max));\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n}\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator } from \"./index.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper =\n/*#__PURE__*/\npopperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers };","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n}\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n position: 'absolute',\n left: '0',\n top: '0',\n margin: '0'\n };\n Object.assign(state.elements.popper.style, initialStyles);\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? Object.assign({}, state.styles[name]) : initialStyles);\n var attributes = state.attributes[name] || {}; // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n var _Object$assign;\n\n return Object.assign({}, style, (_Object$assign = {}, _Object$assign[String(property)] = '', _Object$assign));\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n return element.removeAttribute(attribute);\n });\n });\n };\n}\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport within from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (checkMainAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = popperOffsets[mainAxis] + overflow[mainSide];\n var max = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, Math.abs(referenceRect[len] - arrowRect[len]), arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = state.modifiersData.popperOffsets[mainAxis] + minOffset - offsetModifierValue;\n var tetherMax = state.modifiersData.popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? Math.min(min, tetherMin) : min, offset, tether ? Math.max(max, tetherMax) : max);\n state.modifiersData.popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(_min, _offset, _max);\n\n state.modifiersData.popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n}\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport within from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement) {\n return;\n }\n\n var paddingObject = state.modifiersData[name + \"#persistent\"].padding;\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var center = within(paddingObject[minProp], state.rects.popper[len] / 2 - arrowRect[len] / 2 + centerToReference, state.rects.popper[len] - arrowRect[len] - paddingObject[maxProp]); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element,\n _options$padding = options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding; // CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n state.modifiersData[name + \"#persistent\"] = {\n padding: mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements))\n };\n}\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BezierCurve = exports.BezierCurvepPoints = void 0;\nconst Point_1 = require(\"./Point\");\nconst Polygon_1 = require(\"./Polygon\");\nvar BezierCurvepPoints;\n(function (BezierCurvepPoints) {\n BezierCurvepPoints[BezierCurvepPoints[\"SOURCE\"] = 0] = \"SOURCE\";\n BezierCurvepPoints[BezierCurvepPoints[\"SOURCE_CONTROL\"] = 1] = \"SOURCE_CONTROL\";\n BezierCurvepPoints[BezierCurvepPoints[\"TARGET_CONTROL\"] = 2] = \"TARGET_CONTROL\";\n BezierCurvepPoints[BezierCurvepPoints[\"TARGET\"] = 3] = \"TARGET\";\n})(BezierCurvepPoints = exports.BezierCurvepPoints || (exports.BezierCurvepPoints = {}));\nclass BezierCurve extends Polygon_1.Polygon {\n constructor() {\n super([new Point_1.Point(0, 0), new Point_1.Point(0, 0), new Point_1.Point(0, 0), new Point_1.Point(0, 0)]);\n }\n getSVGCurve() {\n return `M${this.getSource().toSVG()} C${this.getSourceControl().toSVG()}, ${this.getTargetControl().toSVG()}, ${this.getTarget().toSVG()}`;\n }\n setPoints(points) {\n if (points.length !== 4) {\n throw new Error('BezierCurve must have extactly 4 points');\n }\n super.setPoints(points);\n }\n getSource() {\n return this.points[BezierCurvepPoints.SOURCE];\n }\n getSourceControl() {\n return this.points[BezierCurvepPoints.SOURCE_CONTROL];\n }\n getTargetControl() {\n return this.points[BezierCurvepPoints.TARGET_CONTROL];\n }\n getTarget() {\n return this.points[BezierCurvepPoints.TARGET];\n }\n setSource(point) {\n this.points[BezierCurvepPoints.SOURCE] = point;\n }\n setSourceControl(point) {\n this.points[BezierCurvepPoints.SOURCE_CONTROL] = point;\n }\n setTargetControl(point) {\n this.points[BezierCurvepPoints.TARGET_CONTROL] = point;\n }\n setTarget(point) {\n this.points[BezierCurvepPoints.TARGET] = point;\n }\n}\nexports.BezierCurve = BezierCurve;\n//# sourceMappingURL=BezierCurve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Matrix = void 0;\nclass Matrix {\n constructor(matrix) {\n this.matrix = matrix;\n }\n mmul(matrix) {\n this.matrix = this.matrix.map((row, i) => matrix.asArray()[0].map((_, j) => row.reduce((acc, _, n) => acc + this.matrix[i][n] * matrix.asArray()[n][j], 0)));\n return this;\n }\n asArray() {\n return this.matrix;\n }\n get(rowIndex, columnIndex) {\n return this.asArray()[rowIndex][columnIndex];\n }\n}\nexports.Matrix = Matrix;\n//# sourceMappingURL=Matrix.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Point = void 0;\nconst Matrix_1 = require(\"./Matrix\");\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n translate(x, y) {\n this.x += x;\n this.y += y;\n }\n clone() {\n return new Point(this.x, this.y);\n }\n toSVG() {\n return this.x + ' ' + this.y;\n }\n asMatrix() {\n return new Matrix_1.Matrix([[this.x], [this.y], [1]]);\n }\n transform(matrix) {\n let final = matrix.mmul(this.asMatrix());\n this.x = final.get(0, 0);\n this.y = final.get(1, 0);\n }\n static middlePoint(pointA, pointB) {\n return new Point((pointB.x + pointA.x) / 2, (pointB.y + pointA.y) / 2);\n }\n static multiply(...matrices) {\n let m = matrices[0];\n for (let i = 1; i < matrices.length; i++) {\n m = m.mmul(matrices[i]);\n }\n return m;\n }\n static scaleMatrix(x, y) {\n return new Matrix_1.Matrix([\n [x, 0, 0],\n [0, y, 0],\n [0, 0, 1]\n ]);\n }\n static translateMatrix(x, y) {\n return new Matrix_1.Matrix([\n [1, 0, x],\n [0, 1, y],\n [0, 0, 1]\n ]);\n }\n static rotateMatrix(deg) {\n return new Matrix_1.Matrix([\n [Math.cos(deg), -1 * Math.sin(deg), 0],\n [Math.sin(deg), Math.cos(deg), 0],\n [0, 0, 1]\n ]);\n }\n static createScaleMatrix(x, y, origin) {\n return this.multiply(Point.translateMatrix(origin.x, origin.y), Point.scaleMatrix(x, y), Point.translateMatrix(-origin.x, -origin.y));\n }\n static createRotateMatrix(deg, origin) {\n return this.multiply(Point.translateMatrix(origin.x, origin.y), Point.rotateMatrix(deg), Point.translateMatrix(-origin.x, -origin.y));\n }\n}\nexports.Point = Point;\n//# sourceMappingURL=Point.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Polygon = void 0;\nconst Point_1 = require(\"./Point\");\nconst _ = require(\"lodash\");\nclass Polygon {\n constructor(points = []) {\n this.points = points;\n }\n serialize() {\n return _.map(this.points, (point) => {\n return [point.x, point.y];\n });\n }\n deserialize(data) {\n this.points = _.map(data, (point) => {\n return new Point_1.Point(point[0], point[1]);\n });\n }\n scale(x, y, origin) {\n let matrix = Point_1.Point.createScaleMatrix(x, y, origin);\n _.forEach(this.points, (point) => {\n point.transform(matrix);\n });\n }\n transform(matrix) {\n _.forEach(this.points, (point) => {\n point.transform(matrix);\n });\n }\n setPoints(points) {\n this.points = points;\n }\n getPoints() {\n return this.points;\n }\n rotate(degrees) {\n this.transform(Point_1.Point.createRotateMatrix(degrees / (180 / Math.PI), this.getOrigin()));\n }\n translate(offsetX, offsetY) {\n _.forEach(this.points, (point) => {\n point.translate(offsetX, offsetY);\n });\n }\n doClone(ob) {\n this.points = _.map(ob.points, (point) => {\n return point.clone();\n });\n }\n clone() {\n let ob = Object.create(this);\n ob.doClone(this);\n return ob;\n }\n getOrigin() {\n if (this.points.length === 0) {\n return null;\n }\n let dimensions = this.getBoundingBox();\n return Point_1.Point.middlePoint(dimensions.getTopLeft(), dimensions.getBottomRight());\n }\n static boundingBoxFromPolygons(polygons) {\n return Polygon.boundingBoxFromPoints(_.flatMap(polygons, (polygon) => {\n return polygon.getPoints();\n }));\n }\n static boundingBoxFromPoints(points) {\n if (points.length === 0) {\n return new Rectangle_1.Rectangle(0, 0, 0, 0);\n }\n let minX = points[0].x;\n let maxX = points[0].x;\n let minY = points[0].y;\n let maxY = points[0].y;\n for (let i = 1; i < points.length; i++) {\n if (points[i].x < minX) {\n minX = points[i].x;\n }\n if (points[i].x > maxX) {\n maxX = points[i].x;\n }\n if (points[i].y < minY) {\n minY = points[i].y;\n }\n if (points[i].y > maxY) {\n maxY = points[i].y;\n }\n }\n return new Rectangle_1.Rectangle(new Point_1.Point(minX, minY), new Point_1.Point(maxX, minY), new Point_1.Point(maxX, maxY), new Point_1.Point(minX, maxY));\n }\n getBoundingBox() {\n let minX = this.points[0].x;\n let maxX = this.points[0].x;\n let minY = this.points[0].y;\n let maxY = this.points[0].y;\n for (let i = 1; i < this.points.length; i++) {\n if (this.points[i].x < minX) {\n minX = this.points[i].x;\n }\n if (this.points[i].x > maxX) {\n maxX = this.points[i].x;\n }\n if (this.points[i].y < minY) {\n minY = this.points[i].y;\n }\n if (this.points[i].y > maxY) {\n maxY = this.points[i].y;\n }\n }\n return new Rectangle_1.Rectangle(new Point_1.Point(minX, minY), new Point_1.Point(maxX, minY), new Point_1.Point(maxX, maxY), new Point_1.Point(minX, maxY));\n }\n}\nexports.Polygon = Polygon;\nconst Rectangle_1 = require(\"./Rectangle\");\n//# sourceMappingURL=Polygon.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rectangle = void 0;\nconst Point_1 = require(\"./Point\");\nconst Polygon_1 = require(\"./Polygon\");\nclass Rectangle extends Polygon_1.Polygon {\n constructor(a = 0, b = 0, c = 0, d = 0) {\n if (a instanceof Point_1.Point && b instanceof Point_1.Point && c instanceof Point_1.Point && d instanceof Point_1.Point) {\n super([a, b, c, d]);\n }\n else if (a instanceof Point_1.Point) {\n super([a, new Point_1.Point(a.x + b, a.y), new Point_1.Point(a.x + b, a.y + c), new Point_1.Point(a.x, a.y + c)]);\n }\n else {\n super(Rectangle.pointsFromBounds(a, b, c, d));\n }\n }\n static pointsFromBounds(x, y, width, height) {\n return [new Point_1.Point(x, y), new Point_1.Point(x + width, y), new Point_1.Point(x + width, y + height), new Point_1.Point(x, y + height)];\n }\n updateDimensions(x, y, width, height) {\n this.points = Rectangle.pointsFromBounds(x, y, width, height);\n }\n setPoints(points) {\n if (points.length !== 4) {\n throw 'Rectangles must always have 4 points';\n }\n super.setPoints(points);\n }\n containsPoint(point) {\n const tl = this.getTopLeft();\n const br = this.getBottomRight();\n return point.x >= tl.x && point.x <= br.x && point.y >= tl.y && point.y <= br.y;\n }\n getWidth() {\n return Math.sqrt(Math.pow(this.getTopLeft().x - this.getTopRight().x, 2) + Math.pow(this.getTopLeft().y - this.getTopRight().y, 2));\n }\n getHeight() {\n return Math.sqrt(Math.pow(this.getBottomLeft().x - this.getTopLeft().x, 2) +\n Math.pow(this.getBottomLeft().y - this.getTopLeft().y, 2));\n }\n getTopMiddle() {\n return Point_1.Point.middlePoint(this.getTopLeft(), this.getTopRight());\n }\n getBottomMiddle() {\n return Point_1.Point.middlePoint(this.getBottomLeft(), this.getBottomRight());\n }\n getLeftMiddle() {\n return Point_1.Point.middlePoint(this.getBottomLeft(), this.getTopLeft());\n }\n getRightMiddle() {\n return Point_1.Point.middlePoint(this.getBottomRight(), this.getTopRight());\n }\n getTopLeft() {\n return this.points[0];\n }\n getTopRight() {\n return this.points[1];\n }\n getBottomRight() {\n return this.points[2];\n }\n getBottomLeft() {\n return this.points[3];\n }\n}\nexports.Rectangle = Rectangle;\n//# sourceMappingURL=Rectangle.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Point\"), exports);\n__exportStar(require(\"./Matrix\"), exports);\n__exportStar(require(\"./Polygon\"), exports);\n__exportStar(require(\"./Rectangle\"), exports);\n__exportStar(require(\"./BezierCurve\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CanvasEngine = void 0;\nconst lodash_1 = require(\"lodash\");\nconst FactoryBank_1 = require(\"./core/FactoryBank\");\nconst BaseObserver_1 = require(\"./core/BaseObserver\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nconst ActionEventBus_1 = require(\"./core-actions/ActionEventBus\");\nconst ZoomCanvasAction_1 = require(\"./actions/ZoomCanvasAction\");\nconst DeleteItemsAction_1 = require(\"./actions/DeleteItemsAction\");\nconst StateMachine_1 = require(\"./core-state/StateMachine\");\nclass CanvasEngine extends BaseObserver_1.BaseObserver {\n constructor(options = {}) {\n super();\n this.model = null;\n this.eventBus = new ActionEventBus_1.ActionEventBus(this);\n this.stateMachine = new StateMachine_1.StateMachine(this);\n this.layerFactories = new FactoryBank_1.FactoryBank();\n this.registerFactoryBank(this.layerFactories);\n /**\n * Overrides the standard options with the possible given options\n */\n this.options = Object.assign({ registerDefaultDeleteItemsAction: true, registerDefaultZoomCanvasAction: true, repaintDebounceMs: 0 }, options);\n if (this.options.registerDefaultZoomCanvasAction === true) {\n this.eventBus.registerAction(new ZoomCanvasAction_1.ZoomCanvasAction());\n }\n if (this.options.registerDefaultDeleteItemsAction === true) {\n this.eventBus.registerAction(new DeleteItemsAction_1.DeleteItemsAction());\n }\n }\n getStateMachine() {\n return this.stateMachine;\n }\n getRelativeMousePoint(event) {\n const point = this.getRelativePoint(event.clientX, event.clientY);\n return new geometry_1.Point((point.x - this.model.getOffsetX()) / (this.model.getZoomLevel() / 100.0), (point.y - this.model.getOffsetY()) / (this.model.getZoomLevel() / 100.0));\n }\n getRelativePoint(x, y) {\n const canvasRect = this.canvas.getBoundingClientRect();\n return new geometry_1.Point(x - canvasRect.left, y - canvasRect.top);\n }\n registerFactoryBank(factory) {\n factory.registerListener({\n factoryAdded: (event) => {\n event.factory.setDiagramEngine(this);\n },\n factoryRemoved: (event) => {\n event.factory.setDiagramEngine(null);\n }\n });\n }\n getActionEventBus() {\n return this.eventBus;\n }\n getLayerFactories() {\n return this.layerFactories;\n }\n getFactoryForLayer(layer) {\n if (typeof layer === 'string') {\n return this.layerFactories.getFactory(layer);\n }\n return this.layerFactories.getFactory(layer.getType());\n }\n setModel(model) {\n this.model = model;\n if (this.canvas) {\n requestAnimationFrame(() => {\n this.repaintCanvas();\n });\n }\n }\n getModel() {\n return this.model;\n }\n repaintCanvas(promise) {\n const { repaintDebounceMs } = this.options;\n /**\n * The actual repaint function\n */\n const repaint = () => {\n this.iterateListeners((listener) => {\n if (listener.repaintCanvas) {\n listener.repaintCanvas();\n }\n });\n };\n // if the `repaintDebounceMs` option is > 0, then apply the debounce\n let repaintFn = repaint;\n if (repaintDebounceMs > 0) {\n repaintFn = lodash_1.debounce(repaint, repaintDebounceMs);\n }\n if (promise) {\n return new Promise((resolve) => {\n const l = this.registerListener({\n rendered: () => {\n resolve();\n l.deregister();\n }\n });\n repaintFn();\n });\n }\n repaintFn();\n }\n setCanvas(canvas) {\n if (this.canvas !== canvas) {\n this.canvas = canvas;\n if (canvas) {\n this.fireEvent({}, 'canvasReady');\n }\n }\n }\n getCanvas() {\n return this.canvas;\n }\n getMouseElement(event) {\n return null;\n }\n zoomToFit() {\n const xFactor = this.canvas.clientWidth / this.canvas.scrollWidth;\n const yFactor = this.canvas.clientHeight / this.canvas.scrollHeight;\n const zoomFactor = xFactor < yFactor ? xFactor : yFactor;\n this.model.setZoomLevel(this.model.getZoomLevel() * zoomFactor);\n this.model.setOffset(0, 0);\n this.repaintCanvas();\n }\n}\nexports.CanvasEngine = CanvasEngine;\n//# sourceMappingURL=CanvasEngine.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Toolkit = void 0;\nclass Toolkit {\n /**\n * Generats a unique ID (thanks Stack overflow :3)\n * @returns {String}\n */\n static UID() {\n if (Toolkit.TESTING) {\n Toolkit.TESTING_UID++;\n return `${Toolkit.TESTING_UID}`;\n }\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n static closest(element, selector) {\n if (!Element.prototype.closest) {\n Element.prototype.closest = function (s) {\n var el = this;\n do {\n if (Element.prototype.matches.call(el, s))\n return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n }\n return element.closest(selector);\n }\n}\nexports.Toolkit = Toolkit;\nToolkit.TESTING = false;\nToolkit.TESTING_UID = 0;\n//# sourceMappingURL=Toolkit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteItemsAction = void 0;\nconst Action_1 = require(\"../core-actions/Action\");\nconst _ = require(\"lodash\");\n/**\n * Deletes all selected items\n */\nclass DeleteItemsAction extends Action_1.Action {\n constructor(options = {}) {\n const keyCodes = options.keyCodes || [46, 8];\n const modifiers = Object.assign({ ctrlKey: false, shiftKey: false, altKey: false, metaKey: false }, options.modifiers);\n super({\n type: Action_1.InputType.KEY_DOWN,\n fire: (event) => {\n const { keyCode, ctrlKey, shiftKey, altKey, metaKey } = event.event;\n if (keyCodes.indexOf(keyCode) !== -1 && _.isEqual({ ctrlKey, shiftKey, altKey, metaKey }, modifiers)) {\n _.forEach(this.engine.getModel().getSelectedEntities(), (model) => {\n // only delete items which are not locked\n if (!model.isLocked()) {\n model.remove();\n }\n });\n this.engine.repaintCanvas();\n }\n }\n });\n }\n}\nexports.DeleteItemsAction = DeleteItemsAction;\n//# sourceMappingURL=DeleteItemsAction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ZoomCanvasAction = void 0;\nconst Action_1 = require(\"../core-actions/Action\");\nclass ZoomCanvasAction extends Action_1.Action {\n constructor(options = {}) {\n super({\n type: Action_1.InputType.MOUSE_WHEEL,\n fire: (actionEvent) => {\n const { event } = actionEvent;\n // we can block layer rendering because we are only targeting the transforms\n for (let layer of this.engine.getModel().getLayers()) {\n layer.allowRepaint(false);\n }\n const model = this.engine.getModel();\n event.stopPropagation();\n const oldZoomFactor = this.engine.getModel().getZoomLevel() / 100;\n let scrollDelta = options.inverseZoom ? -event.deltaY : event.deltaY;\n //check if it is pinch gesture\n if (event.ctrlKey && scrollDelta % 1 !== 0) {\n /*\n Chrome and Firefox sends wheel event with deltaY that\n have fractional part, also `ctrlKey` prop of the event is true\n though ctrl isn't pressed\n */\n scrollDelta /= 3;\n }\n else {\n scrollDelta /= 60;\n }\n if (model.getZoomLevel() + scrollDelta > 10) {\n model.setZoomLevel(model.getZoomLevel() + scrollDelta);\n }\n const zoomFactor = model.getZoomLevel() / 100;\n const boundingRect = event.currentTarget.getBoundingClientRect();\n const clientWidth = boundingRect.width;\n const clientHeight = boundingRect.height;\n // compute difference between rect before and after scroll\n const widthDiff = clientWidth * zoomFactor - clientWidth * oldZoomFactor;\n const heightDiff = clientHeight * zoomFactor - clientHeight * oldZoomFactor;\n // compute mouse coords relative to canvas\n const clientX = event.clientX - boundingRect.left;\n const clientY = event.clientY - boundingRect.top;\n // compute width and height increment factor\n const xFactor = (clientX - model.getOffsetX()) / oldZoomFactor / clientWidth;\n const yFactor = (clientY - model.getOffsetY()) / oldZoomFactor / clientHeight;\n model.setOffset(model.getOffsetX() - widthDiff * xFactor, model.getOffsetY() - heightDiff * yFactor);\n this.engine.repaintCanvas();\n // re-enable rendering\n for (let layer of this.engine.getModel().getLayers()) {\n layer.allowRepaint(true);\n }\n }\n });\n }\n}\nexports.ZoomCanvasAction = ZoomCanvasAction;\n//# sourceMappingURL=ZoomCanvasAction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Action = exports.InputType = void 0;\nconst Toolkit_1 = require(\"../Toolkit\");\nvar InputType;\n(function (InputType) {\n InputType[\"MOUSE_DOWN\"] = \"mouse-down\";\n InputType[\"MOUSE_UP\"] = \"mouse-up\";\n InputType[\"MOUSE_MOVE\"] = \"mouse-move\";\n InputType[\"MOUSE_WHEEL\"] = \"mouse-wheel\";\n InputType[\"KEY_DOWN\"] = \"key-down\";\n InputType[\"KEY_UP\"] = \"key-up\";\n InputType[\"TOUCH_START\"] = \"touch-start\";\n InputType[\"TOUCH_END\"] = \"touch-end\";\n InputType[\"TOUCH_MOVE\"] = \"touch-move\";\n})(InputType = exports.InputType || (exports.InputType = {}));\nclass Action {\n constructor(options) {\n this.options = options;\n this.id = Toolkit_1.Toolkit.UID();\n }\n setEngine(engine) {\n this.engine = engine;\n }\n}\nexports.Action = Action;\n//# sourceMappingURL=Action.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionEventBus = void 0;\nconst Action_1 = require(\"./Action\");\nconst _ = require(\"lodash\");\nclass ActionEventBus {\n constructor(engine) {\n this.actions = {};\n this.engine = engine;\n this.keys = {};\n }\n getKeys() {\n return _.keys(this.keys);\n }\n registerAction(action) {\n action.setEngine(this.engine);\n this.actions[action.id] = action;\n return () => {\n this.deregisterAction(action);\n };\n }\n deregisterAction(action) {\n action.setEngine(null);\n delete this.actions[action.id];\n }\n getActionsForType(type) {\n return _.filter(this.actions, (action) => {\n return action.options.type === type;\n });\n }\n getModelForEvent(actionEvent) {\n if (actionEvent.model) {\n return actionEvent.model;\n }\n return this.engine.getMouseElement(actionEvent.event);\n }\n getActionsForEvent(actionEvent) {\n const { event } = actionEvent;\n if (event.type === 'mousedown') {\n return this.getActionsForType(Action_1.InputType.MOUSE_DOWN);\n }\n else if (event.type === 'mouseup') {\n return this.getActionsForType(Action_1.InputType.MOUSE_UP);\n }\n else if (event.type === 'keydown') {\n // store the recorded key\n this.keys[event.key.toLowerCase()] = true;\n return this.getActionsForType(Action_1.InputType.KEY_DOWN);\n }\n else if (event.type === 'keyup') {\n // delete the recorded key\n delete this.keys[event.key.toLowerCase()];\n return this.getActionsForType(Action_1.InputType.KEY_UP);\n }\n else if (event.type === 'mousemove') {\n return this.getActionsForType(Action_1.InputType.MOUSE_MOVE);\n }\n else if (event.type === 'wheel') {\n return this.getActionsForType(Action_1.InputType.MOUSE_WHEEL);\n }\n else if (event.type === 'touchstart') {\n return this.getActionsForType(Action_1.InputType.TOUCH_START);\n }\n else if (event.type === 'touchend') {\n return this.getActionsForType(Action_1.InputType.TOUCH_END);\n }\n else if (event.type === 'touchmove') {\n return this.getActionsForType(Action_1.InputType.TOUCH_MOVE);\n }\n return [];\n }\n fireAction(actionEvent) {\n const actions = this.getActionsForEvent(actionEvent);\n for (let action of actions) {\n action.options.fire(actionEvent);\n }\n }\n}\nexports.ActionEventBus = ActionEventBus;\n//# sourceMappingURL=ActionEventBus.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseEntity = void 0;\nconst Toolkit_1 = require(\"../Toolkit\");\nconst _ = require(\"lodash\");\nconst BaseObserver_1 = require(\"../core/BaseObserver\");\nclass BaseEntity extends BaseObserver_1.BaseObserver {\n constructor(options = {}) {\n super();\n this.options = Object.assign({ id: Toolkit_1.Toolkit.UID() }, options);\n }\n getOptions() {\n return this.options;\n }\n getID() {\n return this.options.id;\n }\n doClone(lookupTable = {}, clone) {\n /*noop*/\n }\n clone(lookupTable = {}) {\n // try and use an existing clone first\n if (lookupTable[this.options.id]) {\n return lookupTable[this.options.id];\n }\n let clone = _.cloneDeep(this);\n clone.options = Object.assign(Object.assign({}, this.options), { id: Toolkit_1.Toolkit.UID() });\n clone.clearListeners();\n lookupTable[this.options.id] = clone;\n this.doClone(lookupTable, clone);\n return clone;\n }\n clearListeners() {\n this.listeners = {};\n }\n deserialize(event) {\n this.options.id = event.data.id;\n this.options.locked = event.data.locked;\n }\n serialize() {\n return {\n id: this.options.id,\n locked: this.options.locked\n };\n }\n fireEvent(event, k) {\n super.fireEvent(Object.assign({ entity: this }, event), k);\n }\n isLocked() {\n return this.options.locked;\n }\n setLocked(locked = true) {\n this.options.locked = locked;\n this.fireEvent({\n locked: locked\n }, 'lockChanged');\n }\n}\nexports.BaseEntity = BaseEntity;\n//# sourceMappingURL=BaseEntity.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseModel = void 0;\nconst BaseEntity_1 = require(\"./BaseEntity\");\nconst CanvasModel_1 = require(\"../entities/canvas/CanvasModel\");\nclass BaseModel extends BaseEntity_1.BaseEntity {\n constructor(options) {\n super(options);\n }\n performanceTune() {\n return true;\n }\n getParentCanvasModel() {\n if (!this.parent) {\n return null;\n }\n if (this.parent instanceof CanvasModel_1.CanvasModel) {\n return this.parent;\n }\n else if (this.parent instanceof BaseModel) {\n return this.parent.getParentCanvasModel();\n }\n return null;\n }\n getParent() {\n return this.parent;\n }\n setParent(parent) {\n this.parent = parent;\n }\n getSelectionEntities() {\n return [this];\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { type: this.options.type, selected: this.options.selected, extras: this.options.extras });\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.extras = event.data.extras;\n this.options.selected = event.data.selected;\n }\n getType() {\n return this.options.type;\n }\n isSelected() {\n return this.options.selected;\n }\n isLocked() {\n const locked = super.isLocked();\n if (locked) {\n return true;\n }\n // delegate this call up to the parent\n if (this.parent) {\n return this.parent.isLocked();\n }\n return false;\n }\n setSelected(selected = true) {\n if (this.options.selected !== selected) {\n this.options.selected = selected;\n this.fireEvent({\n isSelected: selected\n }, 'selectionChanged');\n }\n }\n remove() {\n this.fireEvent({}, 'entityRemoved');\n }\n}\nexports.BaseModel = BaseModel;\n//# sourceMappingURL=BaseModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BasePositionModel = void 0;\nconst BaseModel_1 = require(\"./BaseModel\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nclass BasePositionModel extends BaseModel_1.BaseModel {\n constructor(options) {\n super(options);\n this.position = options.position || new geometry_1.Point(0, 0);\n }\n setPosition(x, y) {\n if (typeof x === 'object') {\n this.position = x;\n }\n else if (typeof x) {\n this.position = new geometry_1.Point(x, y);\n }\n this.fireEvent({}, 'positionChanged');\n }\n getBoundingBox() {\n return new geometry_1.Rectangle(this.position, 0, 0);\n }\n deserialize(event) {\n super.deserialize(event);\n this.position = new geometry_1.Point(event.data.x, event.data.y);\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { x: this.position.x, y: this.position.y });\n }\n getPosition() {\n return this.position;\n }\n getX() {\n return this.position.x;\n }\n getY() {\n return this.position.y;\n }\n}\nexports.BasePositionModel = BasePositionModel;\n//# sourceMappingURL=BasePositionModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractDisplacementState = void 0;\nconst State_1 = require(\"./State\");\nconst Action_1 = require(\"../core-actions/Action\");\nclass AbstractDisplacementState extends State_1.State {\n constructor(options) {\n super(options);\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_DOWN,\n fire: (actionEvent) => {\n const { clientX, clientY } = actionEvent.event;\n this.handleMoveStart(clientX, clientY);\n }\n }));\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_MOVE,\n fire: (actionEvent) => {\n const { event } = actionEvent;\n if (event.buttons === 0) {\n // If buttons is 0, it means the mouse is not down, the user may have released it\n // outside of the canvas, then we eject the state\n this.eject();\n return;\n }\n const { clientX, clientY } = event;\n this.handleMove(clientX, clientY, event);\n }\n }));\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_UP,\n fire: () => this.handleMoveEnd()\n }));\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.TOUCH_START,\n fire: (actionEvent) => {\n const { clientX, clientY } = actionEvent.event.touches[0];\n this.handleMoveStart(clientX, clientY);\n }\n }));\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.TOUCH_MOVE,\n fire: (actionEvent) => {\n const { event } = actionEvent;\n const { clientX, clientY } = event.touches[0];\n this.handleMove(clientX, clientY, event);\n }\n }));\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.TOUCH_END,\n fire: () => this.handleMoveEnd()\n }));\n }\n handleMoveStart(x, y) {\n this.initialX = x;\n this.initialY = y;\n const rel = this.engine.getRelativePoint(x, y);\n this.initialXRelative = rel.x;\n this.initialYRelative = rel.y;\n }\n handleMove(x, y, event) {\n this.fireMouseMoved({\n displacementX: x - this.initialX,\n displacementY: y - this.initialY,\n virtualDisplacementX: (x - this.initialX) / (this.engine.getModel().getZoomLevel() / 100.0),\n virtualDisplacementY: (y - this.initialY) / (this.engine.getModel().getZoomLevel() / 100.0),\n event\n });\n }\n handleMoveEnd() {\n this.eject();\n }\n}\nexports.AbstractDisplacementState = AbstractDisplacementState;\n//# sourceMappingURL=AbstractDisplacementState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.State = void 0;\nconst Action_1 = require(\"../core-actions/Action\");\nconst _ = require(\"lodash\");\nclass State {\n constructor(options) {\n this.actions = [];\n this.keys = [];\n this.childStates = [];\n this.options = options;\n }\n setEngine(engine) {\n this.engine = engine;\n }\n getOptions() {\n return this.options;\n }\n eject() {\n this.engine.getStateMachine().popState();\n }\n transitionWithEvent(state, event) {\n this.engine.getStateMachine().pushState(state);\n this.engine.getActionEventBus().fireAction(event);\n }\n registerAction(action) {\n this.actions.push(action);\n }\n tryActivateParentState(keys) {\n if (this.keys.length > 0 && !this.isKeysFullfilled(keys)) {\n this.eject();\n return true;\n }\n return false;\n }\n tryActivateChildState(keys) {\n const state = this.findStateToActivate(keys);\n if (state) {\n this.engine.getStateMachine().pushState(state);\n return true;\n }\n return false;\n }\n findStateToActivate(keys) {\n for (let child of this.childStates) {\n if (child.isKeysFullfilled(keys)) {\n return child;\n }\n }\n return null;\n }\n isKeysFullfilled(keys) {\n return _.intersection(this.keys, keys).length === this.keys.length;\n }\n activated(previous) {\n const keys = this.engine.getActionEventBus().getKeys();\n if (this.tryActivateParentState(keys) || this.tryActivateChildState(keys)) {\n return;\n }\n // perhaps we need to pop again?\n this.handler1 = this.engine.getActionEventBus().registerAction(new Action_1.Action({\n type: Action_1.InputType.KEY_DOWN,\n fire: () => {\n this.tryActivateChildState(this.engine.getActionEventBus().getKeys());\n }\n }));\n this.handler2 = this.engine.getActionEventBus().registerAction(new Action_1.Action({\n type: Action_1.InputType.KEY_UP,\n fire: () => {\n this.tryActivateParentState(this.engine.getActionEventBus().getKeys());\n }\n }));\n for (let action of this.actions) {\n this.engine.getActionEventBus().registerAction(action);\n }\n }\n deactivated(next) {\n if (this.handler1) {\n this.handler1();\n }\n if (this.handler2) {\n this.handler2();\n }\n // if this happens, we are going into heirachial state machine mode\n for (let action of this.actions) {\n this.engine.getActionEventBus().deregisterAction(action);\n }\n }\n}\nexports.State = State;\n//# sourceMappingURL=State.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StateMachine = void 0;\nconst _ = require(\"lodash\");\nconst BaseObserver_1 = require(\"../core/BaseObserver\");\nclass StateMachine extends BaseObserver_1.BaseObserver {\n constructor(engine) {\n super();\n this.engine = engine;\n this.stateStack = [];\n }\n getCurrentState() {\n return this.currentState;\n }\n pushState(state) {\n this.stateStack.push(state);\n this.setState(state);\n }\n popState() {\n this.stateStack.pop();\n this.setState(_.last(this.stateStack));\n }\n setState(state) {\n state.setEngine(this.engine);\n // if no state object, get the initial state\n if (this.currentState) {\n this.currentState.deactivated(state);\n }\n const old = this.currentState;\n this.currentState = state;\n if (this.currentState) {\n this.currentState.activated(old);\n this.fireEvent({\n newState: state\n }, 'stateChanged');\n }\n }\n}\nexports.StateMachine = StateMachine;\n//# sourceMappingURL=StateMachine.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractFactory = void 0;\n/**\n * Base factory for all the different types of entities.\n * Gets registered with the engine, and is used to generate models\n */\nclass AbstractFactory {\n constructor(type) {\n this.type = type;\n }\n setDiagramEngine(engine) {\n this.engine = engine;\n }\n setFactoryBank(bank) {\n this.bank = bank;\n }\n getType() {\n return this.type;\n }\n}\nexports.AbstractFactory = AbstractFactory;\n//# sourceMappingURL=AbstractFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractModelFactory = void 0;\nconst AbstractFactory_1 = require(\"./AbstractFactory\");\nclass AbstractModelFactory extends AbstractFactory_1.AbstractFactory {\n}\nexports.AbstractModelFactory = AbstractModelFactory;\n//# sourceMappingURL=AbstractModelFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractReactFactory = void 0;\nconst AbstractModelFactory_1 = require(\"./AbstractModelFactory\");\n/**\n * Further extends the AbstractFactory to add widget generation capability.\n */\nclass AbstractReactFactory extends AbstractModelFactory_1.AbstractModelFactory {\n}\nexports.AbstractReactFactory = AbstractReactFactory;\n//# sourceMappingURL=AbstractReactFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseObserver = void 0;\nconst Toolkit_1 = require(\"../Toolkit\");\n/**\n * Base observer pattern class for working with listeners\n */\nclass BaseObserver {\n constructor() {\n this.listeners = {};\n }\n fireEventInternal(fire, k, event) {\n this.iterateListeners((listener) => {\n // returning false here will instruct itteration to stop\n if (!fire && !event.firing) {\n return false;\n }\n // fire selected listener\n if (listener[k]) {\n listener[k](event);\n }\n });\n }\n fireEvent(event, k) {\n event = Object.assign({ firing: true, stopPropagation: () => {\n event.firing = false;\n } }, event);\n // fire pre\n this.fireEventInternal(true, 'eventWillFire', Object.assign(Object.assign({}, event), { function: k }));\n // fire main event\n this.fireEventInternal(false, k, event);\n // fire post\n this.fireEventInternal(true, 'eventDidFire', Object.assign(Object.assign({}, event), { function: k }));\n }\n iterateListeners(cb) {\n for (let id in this.listeners) {\n const res = cb(this.listeners[id]);\n // cancel itteration on false\n if (res === false) {\n return;\n }\n }\n }\n getListenerHandle(listener) {\n for (let id in this.listeners) {\n if (this.listeners[id] === listener) {\n return {\n id: id,\n listener: listener,\n deregister: () => {\n delete this.listeners[id];\n }\n };\n }\n }\n }\n registerListener(listener) {\n const id = Toolkit_1.Toolkit.UID();\n this.listeners[id] = listener;\n return {\n id: id,\n listener: listener,\n deregister: () => {\n delete this.listeners[id];\n }\n };\n }\n deregisterListener(listener) {\n if (typeof listener === 'object') {\n listener.deregister();\n return true;\n }\n const handle = this.getListenerHandle(listener);\n if (handle) {\n handle.deregister();\n return true;\n }\n return false;\n }\n}\nexports.BaseObserver = BaseObserver;\n//# sourceMappingURL=BaseObserver.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FactoryBank = void 0;\nconst BaseObserver_1 = require(\"./BaseObserver\");\nconst _ = require(\"lodash\");\n/**\n * Store and managed Factories that extend from Abstractfactory\n */\nclass FactoryBank extends BaseObserver_1.BaseObserver {\n constructor() {\n super();\n this.factories = {};\n }\n getFactories() {\n return _.values(this.factories);\n }\n clearFactories() {\n for (let factory in this.factories) {\n this.deregisterFactory(factory);\n }\n }\n getFactory(type) {\n if (!this.factories[type]) {\n throw new Error(`Cannot find factory with type [${type}]`);\n }\n return this.factories[type];\n }\n registerFactory(factory) {\n factory.setFactoryBank(this);\n this.factories[factory.getType()] = factory;\n // todo fixme\n this.fireEvent({ factory }, 'factoryAdded');\n }\n deregisterFactory(type) {\n const factory = this.factories[type];\n factory.setFactoryBank(null);\n delete this.factories[type];\n // todo fixme\n this.fireEvent({ factory }, 'factoryRemoved');\n }\n}\nexports.FactoryBank = FactoryBank;\n//# sourceMappingURL=FactoryBank.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ModelGeometryInterface.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CanvasModel = void 0;\nconst _ = require(\"lodash\");\nconst BaseEntity_1 = require(\"../../core-models/BaseEntity\");\nclass CanvasModel extends BaseEntity_1.BaseEntity {\n constructor(options = {}) {\n super(Object.assign({ zoom: 100, gridSize: 0, offsetX: 0, offsetY: 0 }, options));\n this.layers = [];\n }\n getSelectionEntities() {\n return _.flatMap(this.layers, (layer) => {\n return layer.getSelectionEntities();\n });\n }\n getSelectedEntities() {\n return _.filter(this.getSelectionEntities(), (ob) => {\n return ob.isSelected();\n });\n }\n clearSelection() {\n _.forEach(this.getSelectedEntities(), (element) => {\n element.setSelected(false);\n });\n }\n getModels() {\n return _.flatMap(this.layers, (layer) => {\n return _.values(layer.getModels());\n });\n }\n addLayer(layer) {\n layer.setParent(this);\n layer.registerListener({\n entityRemoved: (event) => { }\n });\n this.layers.push(layer);\n }\n removeLayer(layer) {\n const index = this.layers.indexOf(layer);\n if (index !== -1) {\n this.layers.splice(index, 1);\n return true;\n }\n return false;\n }\n getLayers() {\n return this.layers;\n }\n setGridSize(size = 0) {\n this.options.gridSize = size;\n this.fireEvent({ size: size }, 'gridUpdated');\n }\n getGridPosition(pos) {\n if (this.options.gridSize === 0) {\n return pos;\n }\n return this.options.gridSize * Math.floor((pos + this.options.gridSize / 2) / this.options.gridSize);\n }\n deserializeModel(data, engine) {\n const models = {};\n const promises = {};\n const resolvers = {};\n const event = {\n data: data,\n engine: engine,\n registerModel: (model) => {\n models[model.getID()] = model;\n if (resolvers[model.getID()]) {\n resolvers[model.getID()](model);\n }\n },\n getModel(id) {\n if (models[id]) {\n return Promise.resolve(models[id]);\n }\n if (!promises[id]) {\n promises[id] = new Promise((resolve) => {\n resolvers[id] = resolve;\n });\n }\n return promises[id];\n }\n };\n this.deserialize(event);\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.offsetX = event.data.offsetX;\n this.options.offsetY = event.data.offsetY;\n this.options.zoom = event.data.zoom;\n this.options.gridSize = event.data.gridSize;\n _.forEach(event.data.layers, (layer) => {\n const layerOb = event.engine.getFactoryForLayer(layer.type).generateModel({\n initialConfig: layer\n });\n layerOb.deserialize(Object.assign(Object.assign({}, event), { data: layer }));\n this.addLayer(layerOb);\n });\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { offsetX: this.options.offsetX, offsetY: this.options.offsetY, zoom: this.options.zoom, gridSize: this.options.gridSize, layers: _.map(this.layers, (layer) => {\n return layer.serialize();\n }) });\n }\n setZoomLevel(zoom) {\n this.options.zoom = zoom;\n this.fireEvent({ zoom }, 'zoomUpdated');\n }\n setOffset(offsetX, offsetY) {\n this.options.offsetX = offsetX;\n this.options.offsetY = offsetY;\n this.fireEvent({ offsetX, offsetY }, 'offsetUpdated');\n }\n setOffsetX(offsetX) {\n this.setOffset(offsetX, this.options.offsetY);\n }\n setOffsetY(offsetY) {\n this.setOffset(this.options.offsetX, offsetY);\n }\n getOffsetY() {\n return this.options.offsetY;\n }\n getOffsetX() {\n return this.options.offsetX;\n }\n getZoomLevel() {\n return this.options.zoom;\n }\n}\nexports.CanvasModel = CanvasModel;\n//# sourceMappingURL=CanvasModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CanvasWidget = void 0;\nconst React = require(\"react\");\nconst TransformLayerWidget_1 = require(\"../layer/TransformLayerWidget\");\nconst styled_1 = require(\"@emotion/styled\");\nconst SmartLayerWidget_1 = require(\"../layer/SmartLayerWidget\");\nvar S;\n(function (S) {\n S.Canvas = styled_1.default.div `\n\t\tposition: relative;\n\t\tcursor: move;\n\t\toverflow: hidden;\n\t`;\n})(S || (S = {}));\nclass CanvasWidget extends React.Component {\n constructor(props) {\n super(props);\n this.ref = React.createRef();\n this.state = {\n action: null,\n diagramEngineListener: null\n };\n }\n componentWillUnmount() {\n this.props.engine.deregisterListener(this.canvasListener);\n this.props.engine.setCanvas(null);\n document.removeEventListener('keyup', this.keyUp);\n document.removeEventListener('keydown', this.keyDown);\n }\n registerCanvas() {\n this.props.engine.setCanvas(this.ref.current);\n this.props.engine.iterateListeners((list) => {\n list.rendered && list.rendered();\n });\n }\n componentDidUpdate() {\n this.registerCanvas();\n }\n componentDidMount() {\n this.canvasListener = this.props.engine.registerListener({\n repaintCanvas: () => {\n this.forceUpdate();\n }\n });\n this.keyDown = (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n };\n this.keyUp = (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n };\n document.addEventListener('keyup', this.keyUp);\n document.addEventListener('keydown', this.keyDown);\n this.registerCanvas();\n }\n render() {\n const engine = this.props.engine;\n const model = engine.getModel();\n return (React.createElement(S.Canvas, { className: this.props.className, ref: this.ref, onWheel: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onMouseDown: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onMouseUp: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onMouseMove: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onTouchStart: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onTouchEnd: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onTouchMove: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n } }, model.getLayers().map((layer) => {\n return (React.createElement(TransformLayerWidget_1.TransformLayerWidget, { layer: layer, key: layer.getID() },\n React.createElement(SmartLayerWidget_1.SmartLayerWidget, { layer: layer, engine: this.props.engine, key: layer.getID() })));\n })));\n }\n}\nexports.CanvasWidget = CanvasWidget;\n//# sourceMappingURL=CanvasWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LayerModel = void 0;\nconst BaseModel_1 = require(\"../../core-models/BaseModel\");\nconst _ = require(\"lodash\");\nclass LayerModel extends BaseModel_1.BaseModel {\n constructor(options = {}) {\n super(options);\n this.models = {};\n this.repaintEnabled = true;\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.isSvg = !!event.data.isSvg;\n this.options.transformed = !!event.data.transformed;\n _.forEach(event.data.models, (model) => {\n const modelOb = this.getChildModelFactoryBank(event.engine).getFactory(model.type).generateModel({\n initialConfig: model\n });\n modelOb.deserialize(Object.assign(Object.assign({}, event), { data: model }));\n this.addModel(modelOb);\n });\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { isSvg: this.options.isSvg, transformed: this.options.transformed, models: _.mapValues(this.models, (model) => {\n return model.serialize();\n }) });\n }\n isRepaintEnabled() {\n return this.repaintEnabled;\n }\n allowRepaint(allow = true) {\n this.repaintEnabled = allow;\n }\n remove() {\n if (this.parent) {\n this.parent.removeLayer(this);\n }\n super.remove();\n }\n addModel(model) {\n model.setParent(this);\n this.models[model.getID()] = model;\n }\n getSelectionEntities() {\n return _.flatMap(this.models, (model) => {\n return model.getSelectionEntities();\n });\n }\n getModels() {\n return this.models;\n }\n getModel(id) {\n return this.models[id];\n }\n removeModel(id) {\n const _id = typeof id === 'string' ? id : id.getID();\n if (this.models[_id]) {\n delete this.models[_id];\n return true;\n }\n return false;\n }\n}\nexports.LayerModel = LayerModel;\n//# sourceMappingURL=LayerModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SmartLayerWidget = void 0;\nconst React = require(\"react\");\nclass SmartLayerWidget extends React.Component {\n shouldComponentUpdate() {\n return this.props.layer.isRepaintEnabled();\n }\n render() {\n return this.props.engine.getFactoryForLayer(this.props.layer).generateReactWidget({ model: this.props.layer });\n }\n}\nexports.SmartLayerWidget = SmartLayerWidget;\n//# sourceMappingURL=SmartLayerWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TransformLayerWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nconst react_1 = require(\"@emotion/react\");\nvar S;\n(function (S) {\n const shared = react_1.css `\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tposition: absolute;\n\t\tpointer-events: none;\n\t\ttransform-origin: 0 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\toverflow: visible;\n\t`;\n S.DivLayer = styled_1.default.div `\n\t\t${shared}\n\t`;\n S.SvgLayer = styled_1.default.svg `\n\t\t${shared}\n\t`;\n})(S || (S = {}));\nclass TransformLayerWidget extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n getTransform() {\n const model = this.props.layer.getParent();\n return `\n\t\t\ttranslate(\n\t\t\t\t${model.getOffsetX()}px,\n\t\t\t\t${model.getOffsetY()}px)\n\t\t\tscale(\n\t\t\t\t${model.getZoomLevel() / 100.0}\n\t\t\t)\n \t`;\n }\n getTransformStyle() {\n if (this.props.layer.getOptions().transformed) {\n return {\n transform: this.getTransform()\n };\n }\n return {};\n }\n render() {\n if (this.props.layer.getOptions().isSvg) {\n return React.createElement(S.SvgLayer, { style: this.getTransformStyle() }, this.props.children);\n }\n return React.createElement(S.DivLayer, { style: this.getTransformStyle() }, this.props.children);\n }\n}\nexports.TransformLayerWidget = TransformLayerWidget;\n//# sourceMappingURL=TransformLayerWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionBoxLayerFactory = void 0;\nconst React = require(\"react\");\nconst AbstractReactFactory_1 = require(\"../../core/AbstractReactFactory\");\nconst SelectionLayerModel_1 = require(\"./SelectionLayerModel\");\nconst SelectionBoxWidget_1 = require(\"./SelectionBoxWidget\");\nclass SelectionBoxLayerFactory extends AbstractReactFactory_1.AbstractReactFactory {\n constructor() {\n super('selection');\n }\n generateModel(event) {\n return new SelectionLayerModel_1.SelectionLayerModel();\n }\n generateReactWidget(event) {\n return React.createElement(SelectionBoxWidget_1.SelectionBoxWidget, { rect: event.model.box });\n }\n}\nexports.SelectionBoxLayerFactory = SelectionBoxLayerFactory;\n//# sourceMappingURL=SelectionBoxLayerFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionBoxWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.Container = styled_1.default.div `\n\t\tposition: absolute;\n\t\tbackground-color: rgba(0, 192, 255, 0.2);\n\t\tborder: solid 2px rgb(0, 192, 255);\n\t`;\n})(S || (S = {}));\nclass SelectionBoxWidget extends React.Component {\n render() {\n const { rect } = this.props;\n if (!rect)\n return null;\n return (React.createElement(S.Container, { style: {\n top: rect.top,\n left: rect.left,\n width: rect.width,\n height: rect.height\n } }));\n }\n}\nexports.SelectionBoxWidget = SelectionBoxWidget;\n//# sourceMappingURL=SelectionBoxWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionLayerModel = void 0;\nconst LayerModel_1 = require(\"../layer/LayerModel\");\nclass SelectionLayerModel extends LayerModel_1.LayerModel {\n constructor() {\n super({\n transformed: false,\n isSvg: false,\n type: 'selection'\n });\n }\n setBox(rect) {\n this.box = rect;\n }\n getChildModelFactoryBank() {\n // is not used as it doesnt serialize\n return null;\n }\n}\nexports.SelectionLayerModel = SelectionLayerModel;\n//# sourceMappingURL=SelectionLayerModel.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./CanvasEngine\"), exports);\n__exportStar(require(\"./Toolkit\"), exports);\n__exportStar(require(\"./entities/canvas/CanvasModel\"), exports);\n__exportStar(require(\"./core/AbstractFactory\"), exports);\n__exportStar(require(\"./core/AbstractModelFactory\"), exports);\n__exportStar(require(\"./core/AbstractReactFactory\"), exports);\n__exportStar(require(\"./core/BaseObserver\"), exports);\n__exportStar(require(\"./core/FactoryBank\"), exports);\n__exportStar(require(\"./core/ModelGeometryInterface\"), exports);\n__exportStar(require(\"./core-actions/Action\"), exports);\n__exportStar(require(\"./core-actions/ActionEventBus\"), exports);\n__exportStar(require(\"./core-models/BaseEntity\"), exports);\n__exportStar(require(\"./core-models/BaseModel\"), exports);\n__exportStar(require(\"./core-models/BasePositionModel\"), exports);\n__exportStar(require(\"./entities/canvas/CanvasModel\"), exports);\n__exportStar(require(\"./entities/canvas/CanvasWidget\"), exports);\n__exportStar(require(\"./entities/layer/LayerModel\"), exports);\n__exportStar(require(\"./entities/layer/TransformLayerWidget\"), exports);\n__exportStar(require(\"./entities/layer/SmartLayerWidget\"), exports);\n__exportStar(require(\"./entities/selection/SelectionBoxLayerFactory\"), exports);\n__exportStar(require(\"./entities/selection/SelectionBoxWidget\"), exports);\n__exportStar(require(\"./entities/selection/SelectionLayerModel\"), exports);\n__exportStar(require(\"./widgets/PeformanceWidget\"), exports);\n__exportStar(require(\"./core-state/AbstractDisplacementState\"), exports);\n__exportStar(require(\"./core-state/State\"), exports);\n__exportStar(require(\"./core-state/StateMachine\"), exports);\n__exportStar(require(\"./states/DefaultState\"), exports);\n__exportStar(require(\"./states/DragCanvasState\"), exports);\n__exportStar(require(\"./states/SelectingState\"), exports);\n__exportStar(require(\"./states/SelectionBoxState\"), exports);\n__exportStar(require(\"./states/MoveItemsState\"), exports);\n__exportStar(require(\"./actions/DeleteItemsAction\"), exports);\n__exportStar(require(\"./actions/ZoomCanvasAction\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultState = void 0;\nconst State_1 = require(\"../core-state/State\");\nconst Action_1 = require(\"../core-actions/Action\");\nconst DragCanvasState_1 = require(\"./DragCanvasState\");\nconst SelectingState_1 = require(\"./SelectingState\");\nconst MoveItemsState_1 = require(\"./MoveItemsState\");\nclass DefaultState extends State_1.State {\n constructor() {\n super({\n name: 'default'\n });\n this.childStates = [new SelectingState_1.SelectingState()];\n // determine what was clicked on\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_DOWN,\n fire: (event) => {\n const element = this.engine.getActionEventBus().getModelForEvent(event);\n // the canvas was clicked on, transition to the dragging canvas state\n if (!element) {\n this.transitionWithEvent(new DragCanvasState_1.DragCanvasState(), event);\n }\n else {\n this.transitionWithEvent(new MoveItemsState_1.MoveItemsState(), event);\n }\n }\n }));\n // touch drags the canvas\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.TOUCH_START,\n fire: (event) => {\n this.transitionWithEvent(new DragCanvasState_1.DragCanvasState(), event);\n }\n }));\n }\n}\nexports.DefaultState = DefaultState;\n//# sourceMappingURL=DefaultState.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DragCanvasState = void 0;\nconst AbstractDisplacementState_1 = require(\"../core-state/AbstractDisplacementState\");\nclass DragCanvasState extends AbstractDisplacementState_1.AbstractDisplacementState {\n constructor(options = {}) {\n super({\n name: 'drag-canvas'\n });\n this.config = Object.assign({ allowDrag: true }, options);\n }\n activated(prev) {\n const _super = Object.create(null, {\n activated: { get: () => super.activated }\n });\n return __awaiter(this, void 0, void 0, function* () {\n _super.activated.call(this, prev);\n this.engine.getModel().clearSelection();\n yield this.engine.repaintCanvas(true);\n // we can block layer rendering because we are only targeting the transforms\n for (let layer of this.engine.getModel().getLayers()) {\n layer.allowRepaint(false);\n }\n this.initialCanvasX = this.engine.getModel().getOffsetX();\n this.initialCanvasY = this.engine.getModel().getOffsetY();\n });\n }\n deactivated(next) {\n super.deactivated(next);\n for (let layer of this.engine.getModel().getLayers()) {\n layer.allowRepaint(true);\n }\n }\n fireMouseMoved(event) {\n if (this.config.allowDrag) {\n this.engine\n .getModel()\n .setOffset(this.initialCanvasX + event.displacementX, this.initialCanvasY + event.displacementY);\n this.engine.repaintCanvas();\n }\n }\n}\nexports.DragCanvasState = DragCanvasState;\n//# sourceMappingURL=DragCanvasState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MoveItemsState = void 0;\nconst AbstractDisplacementState_1 = require(\"../core-state/AbstractDisplacementState\");\nconst Action_1 = require(\"../core-actions/Action\");\nconst BasePositionModel_1 = require(\"../core-models/BasePositionModel\");\nclass MoveItemsState extends AbstractDisplacementState_1.AbstractDisplacementState {\n constructor() {\n super({\n name: 'move-items'\n });\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_DOWN,\n fire: (event) => {\n const element = this.engine.getActionEventBus().getModelForEvent(event);\n if (!element) {\n return;\n }\n if (!element.isSelected()) {\n this.engine.getModel().clearSelection();\n }\n element.setSelected(true);\n this.engine.repaintCanvas();\n }\n }));\n }\n activated(previous) {\n super.activated(previous);\n this.initialPositions = {};\n }\n fireMouseMoved(event) {\n const items = this.engine.getModel().getSelectedEntities();\n const model = this.engine.getModel();\n for (let item of items) {\n if (item instanceof BasePositionModel_1.BasePositionModel) {\n if (item.isLocked()) {\n continue;\n }\n if (!this.initialPositions[item.getID()]) {\n this.initialPositions[item.getID()] = {\n point: item.getPosition(),\n item: item\n };\n }\n const pos = this.initialPositions[item.getID()].point;\n item.setPosition(model.getGridPosition(pos.x + event.virtualDisplacementX), model.getGridPosition(pos.y + event.virtualDisplacementY));\n }\n }\n this.engine.repaintCanvas();\n }\n}\nexports.MoveItemsState = MoveItemsState;\n//# sourceMappingURL=MoveItemsState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectingState = void 0;\nconst State_1 = require(\"../core-state/State\");\nconst Action_1 = require(\"../core-actions/Action\");\nconst SelectionBoxState_1 = require(\"./SelectionBoxState\");\nclass SelectingState extends State_1.State {\n constructor() {\n super({\n name: 'selecting'\n });\n this.keys = ['shift'];\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_DOWN,\n fire: (event) => {\n const element = this.engine.getActionEventBus().getModelForEvent(event);\n // go into a selection box on the canvas state\n if (!element) {\n this.transitionWithEvent(new SelectionBoxState_1.SelectionBoxState(), event);\n }\n else {\n element.setSelected(true);\n this.engine.repaintCanvas();\n }\n }\n }));\n }\n}\nexports.SelectingState = SelectingState;\n//# sourceMappingURL=SelectingState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionBoxState = void 0;\nconst AbstractDisplacementState_1 = require(\"../core-state/AbstractDisplacementState\");\nconst SelectionLayerModel_1 = require(\"../entities/selection/SelectionLayerModel\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nclass SelectionBoxState extends AbstractDisplacementState_1.AbstractDisplacementState {\n constructor() {\n super({\n name: 'selection-box'\n });\n }\n activated(previous) {\n super.activated(previous);\n this.layer = new SelectionLayerModel_1.SelectionLayerModel();\n this.engine.getModel().addLayer(this.layer);\n }\n deactivated(next) {\n super.deactivated(next);\n this.layer.remove();\n this.engine.repaintCanvas();\n }\n getBoxDimensions(event) {\n let rel;\n if ('touches' in event.event) {\n const touch = event.event.touches[0];\n rel = this.engine.getRelativePoint(touch.clientX, touch.clientY);\n }\n else {\n rel = this.engine.getRelativePoint(event.event.clientX, event.event.clientY);\n }\n return {\n left: rel.x > this.initialXRelative ? this.initialXRelative : rel.x,\n top: rel.y > this.initialYRelative ? this.initialYRelative : rel.y,\n width: Math.abs(rel.x - this.initialXRelative),\n height: Math.abs(rel.y - this.initialYRelative),\n right: rel.x < this.initialXRelative ? this.initialXRelative : rel.x,\n bottom: rel.y < this.initialYRelative ? this.initialYRelative : rel.y\n };\n }\n fireMouseMoved(event) {\n this.layer.setBox(this.getBoxDimensions(event));\n const relative = this.engine.getRelativeMousePoint({\n clientX: this.initialX,\n clientY: this.initialY\n });\n if (event.virtualDisplacementX < 0) {\n relative.x -= Math.abs(event.virtualDisplacementX);\n }\n if (event.virtualDisplacementY < 0) {\n relative.y -= Math.abs(event.virtualDisplacementY);\n }\n const rect = new geometry_1.Rectangle(relative, Math.abs(event.virtualDisplacementX), Math.abs(event.virtualDisplacementY));\n for (let model of this.engine.getModel().getSelectionEntities()) {\n if (model.getBoundingBox) {\n const bounds = model.getBoundingBox();\n if (rect.containsPoint(bounds.getTopLeft()) && rect.containsPoint(bounds.getBottomRight())) {\n model.setSelected(true);\n }\n else {\n model.setSelected(false);\n }\n }\n }\n this.engine.repaintCanvas();\n }\n}\nexports.SelectionBoxState = SelectionBoxState;\n//# sourceMappingURL=SelectionBoxState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PeformanceWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nclass PeformanceWidget extends React.Component {\n shouldComponentUpdate(nextProps, nextState, nextContext) {\n if (!this.props.model.performanceTune()) {\n return true;\n }\n // deserialization event\n if (this.props.model !== nextProps.model) {\n return true;\n }\n // change event\n return !_.isEqual(this.props.serialized, nextProps.serialized);\n }\n render() {\n return this.props.children();\n }\n}\nexports.PeformanceWidget = PeformanceWidget;\n//# sourceMappingURL=PeformanceWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CanvasEngine = void 0;\nconst lodash_1 = require(\"lodash\");\nconst FactoryBank_1 = require(\"./core/FactoryBank\");\nconst BaseObserver_1 = require(\"./core/BaseObserver\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nconst ActionEventBus_1 = require(\"./core-actions/ActionEventBus\");\nconst PanAndZoomCanvasAction_1 = require(\"./actions/PanAndZoomCanvasAction\");\nconst ZoomCanvasAction_1 = require(\"./actions/ZoomCanvasAction\");\nconst DeleteItemsAction_1 = require(\"./actions/DeleteItemsAction\");\nconst StateMachine_1 = require(\"./core-state/StateMachine\");\nclass CanvasEngine extends BaseObserver_1.BaseObserver {\n constructor(options = {}) {\n super();\n this.model = null;\n this.eventBus = new ActionEventBus_1.ActionEventBus(this);\n this.stateMachine = new StateMachine_1.StateMachine(this);\n this.layerFactories = new FactoryBank_1.FactoryBank();\n this.registerFactoryBank(this.layerFactories);\n /**\n * Overrides the standard options with the possible given options\n */\n this.options = Object.assign({ registerDefaultDeleteItemsAction: true, registerDefaultZoomCanvasAction: true, repaintDebounceMs: 0 }, options);\n if (this.options.registerDefaultZoomCanvasAction === true) {\n this.eventBus.registerAction(new ZoomCanvasAction_1.ZoomCanvasAction());\n }\n else if (this.options.registerDefaultPanAndZoomCanvasAction === true) {\n this.eventBus.registerAction(new PanAndZoomCanvasAction_1.PanAndZoomCanvasAction());\n }\n if (this.options.registerDefaultDeleteItemsAction === true) {\n this.eventBus.registerAction(new DeleteItemsAction_1.DeleteItemsAction());\n }\n }\n getStateMachine() {\n return this.stateMachine;\n }\n getRelativeMousePoint(event) {\n const point = this.getRelativePoint(event.clientX, event.clientY);\n return new geometry_1.Point((point.x - this.model.getOffsetX()) / (this.model.getZoomLevel() / 100.0), (point.y - this.model.getOffsetY()) / (this.model.getZoomLevel() / 100.0));\n }\n getRelativePoint(x, y) {\n const canvasRect = this.canvas.getBoundingClientRect();\n return new geometry_1.Point(x - canvasRect.left, y - canvasRect.top);\n }\n registerFactoryBank(factory) {\n factory.registerListener({\n factoryAdded: (event) => {\n event.factory.setDiagramEngine(this);\n },\n factoryRemoved: (event) => {\n event.factory.setDiagramEngine(null);\n }\n });\n }\n getActionEventBus() {\n return this.eventBus;\n }\n getLayerFactories() {\n return this.layerFactories;\n }\n getFactoryForLayer(layer) {\n if (typeof layer === 'string') {\n return this.layerFactories.getFactory(layer);\n }\n return this.layerFactories.getFactory(layer.getType());\n }\n setModel(model) {\n this.model = model;\n if (this.canvas) {\n requestAnimationFrame(() => {\n this.repaintCanvas();\n });\n }\n }\n getModel() {\n return this.model;\n }\n repaintCanvas(promise) {\n const { repaintDebounceMs } = this.options;\n /**\n * The actual repaint function\n */\n const repaint = () => {\n this.iterateListeners((listener) => {\n if (listener.repaintCanvas) {\n listener.repaintCanvas();\n }\n });\n };\n // if the `repaintDebounceMs` option is > 0, then apply the debounce\n let repaintFn = repaint;\n if (repaintDebounceMs > 0) {\n repaintFn = (0, lodash_1.debounce)(repaint, repaintDebounceMs);\n }\n if (promise) {\n return new Promise((resolve) => {\n const l = this.registerListener({\n rendered: () => {\n resolve();\n l.deregister();\n }\n });\n repaintFn();\n });\n }\n repaintFn();\n }\n setCanvas(canvas) {\n if (this.canvas !== canvas) {\n this.canvas = canvas;\n if (canvas) {\n this.fireEvent({}, 'canvasReady');\n }\n }\n }\n getCanvas() {\n return this.canvas;\n }\n getMouseElement(event) {\n return null;\n }\n zoomToFit() {\n const xFactor = this.canvas.clientWidth / this.canvas.scrollWidth;\n const yFactor = this.canvas.clientHeight / this.canvas.scrollHeight;\n const zoomFactor = xFactor < yFactor ? xFactor : yFactor;\n this.model.setZoomLevel(this.model.getZoomLevel() * zoomFactor);\n this.model.setOffset(0, 0);\n this.repaintCanvas();\n }\n}\nexports.CanvasEngine = CanvasEngine;\n//# sourceMappingURL=CanvasEngine.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Toolkit = void 0;\nclass Toolkit {\n /**\n * Generats a unique ID (thanks Stack overflow :3)\n * @returns {String}\n */\n static UID() {\n if (Toolkit.TESTING) {\n Toolkit.TESTING_UID++;\n return `${Toolkit.TESTING_UID}`;\n }\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n static closest(element, selector) {\n if (!Element.prototype.closest) {\n Element.prototype.closest = function (s) {\n var el = this;\n do {\n if (Element.prototype.matches.call(el, s))\n return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n }\n return element.closest(selector);\n }\n}\nexports.Toolkit = Toolkit;\nToolkit.TESTING = false;\nToolkit.TESTING_UID = 0;\n//# sourceMappingURL=Toolkit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeleteItemsAction = void 0;\nconst Action_1 = require(\"../core-actions/Action\");\nconst _ = require(\"lodash\");\n/**\n * Deletes all selected items\n */\nclass DeleteItemsAction extends Action_1.Action {\n constructor(options = {}) {\n const keyCodes = options.keyCodes || [46, 8];\n const modifiers = Object.assign({ ctrlKey: false, shiftKey: false, altKey: false, metaKey: false }, options.modifiers);\n super({\n type: Action_1.InputType.KEY_DOWN,\n fire: (event) => {\n const { keyCode, ctrlKey, shiftKey, altKey, metaKey } = event.event;\n if (keyCodes.indexOf(keyCode) !== -1 && _.isEqual({ ctrlKey, shiftKey, altKey, metaKey }, modifiers)) {\n _.forEach(this.engine.getModel().getSelectedEntities(), (model) => {\n // only delete items which are not locked\n if (!model.isLocked()) {\n model.remove();\n }\n });\n this.engine.repaintCanvas();\n }\n }\n });\n }\n}\nexports.DeleteItemsAction = DeleteItemsAction;\n//# sourceMappingURL=DeleteItemsAction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PanAndZoomCanvasAction = void 0;\nconst Action_1 = require(\"../core-actions/Action\");\nclass PanAndZoomCanvasAction extends Action_1.Action {\n constructor(options = {}) {\n super({\n type: Action_1.InputType.MOUSE_WHEEL,\n fire: (actionEvent) => {\n const { event } = actionEvent;\n // we can block layer rendering because we are only targeting the transforms\n for (let layer of this.engine.getModel().getLayers()) {\n layer.allowRepaint(false);\n }\n const model = this.engine.getModel();\n event.stopPropagation();\n if (event.ctrlKey) {\n // Pinch and zoom gesture\n const oldZoomFactor = this.engine.getModel().getZoomLevel() / 100;\n let scrollDelta = options.inverseZoom ? event.deltaY : -event.deltaY;\n scrollDelta /= 3;\n if (model.getZoomLevel() + scrollDelta > 10) {\n model.setZoomLevel(model.getZoomLevel() + scrollDelta);\n }\n const zoomFactor = model.getZoomLevel() / 100;\n const boundingRect = event.currentTarget.getBoundingClientRect();\n const clientWidth = boundingRect.width;\n const clientHeight = boundingRect.height;\n // compute difference between rect before and after scroll\n const widthDiff = clientWidth * zoomFactor - clientWidth * oldZoomFactor;\n const heightDiff = clientHeight * zoomFactor - clientHeight * oldZoomFactor;\n // compute mouse coords relative to canvas\n const clientX = event.clientX - boundingRect.left;\n const clientY = event.clientY - boundingRect.top;\n // compute width and height increment factor\n const xFactor = (clientX - model.getOffsetX()) / oldZoomFactor / clientWidth;\n const yFactor = (clientY - model.getOffsetY()) / oldZoomFactor / clientHeight;\n model.setOffset(model.getOffsetX() - widthDiff * xFactor, model.getOffsetY() - heightDiff * yFactor);\n }\n else {\n // Pan gesture\n let yDelta = options.inverseZoom ? -event.deltaY : event.deltaY;\n let xDelta = options.inverseZoom ? -event.deltaX : event.deltaX;\n model.setOffset(model.getOffsetX() - xDelta, model.getOffsetY() - yDelta);\n }\n this.engine.repaintCanvas();\n // re-enable rendering\n for (let layer of this.engine.getModel().getLayers()) {\n layer.allowRepaint(true);\n }\n }\n });\n }\n}\nexports.PanAndZoomCanvasAction = PanAndZoomCanvasAction;\n//# sourceMappingURL=PanAndZoomCanvasAction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ZoomCanvasAction = void 0;\nconst Action_1 = require(\"../core-actions/Action\");\nclass ZoomCanvasAction extends Action_1.Action {\n constructor(options = {}) {\n super({\n type: Action_1.InputType.MOUSE_WHEEL,\n fire: (actionEvent) => {\n const { event } = actionEvent;\n // we can block layer rendering because we are only targeting the transforms\n for (let layer of this.engine.getModel().getLayers()) {\n layer.allowRepaint(false);\n }\n const model = this.engine.getModel();\n event.stopPropagation();\n const oldZoomFactor = this.engine.getModel().getZoomLevel() / 100;\n let scrollDelta = options.inverseZoom ? -event.deltaY : event.deltaY;\n //check if it is pinch gesture\n if (event.ctrlKey && scrollDelta % 1 !== 0) {\n /*\n Chrome and Firefox sends wheel event with deltaY that\n have fractional part, also `ctrlKey` prop of the event is true\n though ctrl isn't pressed\n */\n scrollDelta /= 3;\n }\n else {\n scrollDelta /= 60;\n }\n if (model.getZoomLevel() + scrollDelta > 10) {\n model.setZoomLevel(model.getZoomLevel() + scrollDelta);\n }\n const zoomFactor = model.getZoomLevel() / 100;\n const boundingRect = event.currentTarget.getBoundingClientRect();\n const clientWidth = boundingRect.width;\n const clientHeight = boundingRect.height;\n // compute difference between rect before and after scroll\n const widthDiff = clientWidth * zoomFactor - clientWidth * oldZoomFactor;\n const heightDiff = clientHeight * zoomFactor - clientHeight * oldZoomFactor;\n // compute mouse coords relative to canvas\n const clientX = event.clientX - boundingRect.left;\n const clientY = event.clientY - boundingRect.top;\n // compute width and height increment factor\n const xFactor = (clientX - model.getOffsetX()) / oldZoomFactor / clientWidth;\n const yFactor = (clientY - model.getOffsetY()) / oldZoomFactor / clientHeight;\n model.setOffset(model.getOffsetX() - widthDiff * xFactor, model.getOffsetY() - heightDiff * yFactor);\n this.engine.repaintCanvas();\n // re-enable rendering\n for (let layer of this.engine.getModel().getLayers()) {\n layer.allowRepaint(true);\n }\n }\n });\n }\n}\nexports.ZoomCanvasAction = ZoomCanvasAction;\n//# sourceMappingURL=ZoomCanvasAction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Action = exports.InputType = void 0;\nconst Toolkit_1 = require(\"../Toolkit\");\nvar InputType;\n(function (InputType) {\n InputType[\"MOUSE_DOWN\"] = \"mouse-down\";\n InputType[\"MOUSE_UP\"] = \"mouse-up\";\n InputType[\"MOUSE_MOVE\"] = \"mouse-move\";\n InputType[\"MOUSE_WHEEL\"] = \"mouse-wheel\";\n InputType[\"KEY_DOWN\"] = \"key-down\";\n InputType[\"KEY_UP\"] = \"key-up\";\n InputType[\"TOUCH_START\"] = \"touch-start\";\n InputType[\"TOUCH_END\"] = \"touch-end\";\n InputType[\"TOUCH_MOVE\"] = \"touch-move\";\n})(InputType = exports.InputType || (exports.InputType = {}));\nclass Action {\n constructor(options) {\n this.options = options;\n this.id = Toolkit_1.Toolkit.UID();\n }\n setEngine(engine) {\n this.engine = engine;\n }\n}\nexports.Action = Action;\n//# sourceMappingURL=Action.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionEventBus = void 0;\nconst Action_1 = require(\"./Action\");\nconst _ = require(\"lodash\");\nclass ActionEventBus {\n constructor(engine) {\n this.actions = {};\n this.engine = engine;\n this.keys = {};\n }\n getKeys() {\n return _.keys(this.keys);\n }\n registerAction(action) {\n action.setEngine(this.engine);\n this.actions[action.id] = action;\n return () => {\n this.deregisterAction(action);\n };\n }\n deregisterAction(action) {\n action.setEngine(null);\n delete this.actions[action.id];\n }\n getActionsForType(type) {\n return _.filter(this.actions, (action) => {\n return action.options.type === type;\n });\n }\n getModelForEvent(actionEvent) {\n if (actionEvent.model) {\n return actionEvent.model;\n }\n return this.engine.getMouseElement(actionEvent.event);\n }\n getActionsForEvent(actionEvent) {\n const { event } = actionEvent;\n if (event.type === 'mousedown') {\n return this.getActionsForType(Action_1.InputType.MOUSE_DOWN);\n }\n else if (event.type === 'mouseup') {\n return this.getActionsForType(Action_1.InputType.MOUSE_UP);\n }\n else if (event.type === 'keydown') {\n // store the recorded key\n this.keys[event.key.toLowerCase()] = true;\n return this.getActionsForType(Action_1.InputType.KEY_DOWN);\n }\n else if (event.type === 'keyup') {\n // delete the recorded key\n delete this.keys[event.key.toLowerCase()];\n return this.getActionsForType(Action_1.InputType.KEY_UP);\n }\n else if (event.type === 'mousemove') {\n return this.getActionsForType(Action_1.InputType.MOUSE_MOVE);\n }\n else if (event.type === 'wheel') {\n return this.getActionsForType(Action_1.InputType.MOUSE_WHEEL);\n }\n else if (event.type === 'touchstart') {\n return this.getActionsForType(Action_1.InputType.TOUCH_START);\n }\n else if (event.type === 'touchend') {\n return this.getActionsForType(Action_1.InputType.TOUCH_END);\n }\n else if (event.type === 'touchmove') {\n return this.getActionsForType(Action_1.InputType.TOUCH_MOVE);\n }\n return [];\n }\n fireAction(actionEvent) {\n const actions = this.getActionsForEvent(actionEvent);\n for (let action of actions) {\n action.options.fire(actionEvent);\n }\n }\n}\nexports.ActionEventBus = ActionEventBus;\n//# sourceMappingURL=ActionEventBus.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseEntity = void 0;\nconst Toolkit_1 = require(\"../Toolkit\");\nconst _ = require(\"lodash\");\nconst BaseObserver_1 = require(\"../core/BaseObserver\");\nclass BaseEntity extends BaseObserver_1.BaseObserver {\n constructor(options = {}) {\n super();\n this.options = Object.assign({ id: Toolkit_1.Toolkit.UID() }, options);\n }\n getOptions() {\n return this.options;\n }\n getID() {\n return this.options.id;\n }\n doClone(lookupTable = {}, clone) {\n /*noop*/\n }\n clone(lookupTable = {}) {\n // try and use an existing clone first\n if (lookupTable[this.options.id]) {\n return lookupTable[this.options.id];\n }\n let clone = _.cloneDeep(this);\n clone.options = Object.assign(Object.assign({}, this.options), { id: Toolkit_1.Toolkit.UID() });\n clone.clearListeners();\n lookupTable[this.options.id] = clone;\n this.doClone(lookupTable, clone);\n return clone;\n }\n clearListeners() {\n this.listeners = {};\n }\n deserialize(event) {\n this.options.id = event.data.id;\n this.options.locked = event.data.locked;\n }\n serialize() {\n return {\n id: this.options.id,\n locked: this.options.locked\n };\n }\n fireEvent(event, k) {\n super.fireEvent(Object.assign({ entity: this }, event), k);\n }\n isLocked() {\n return this.options.locked;\n }\n setLocked(locked = true) {\n this.options.locked = locked;\n this.fireEvent({\n locked: locked\n }, 'lockChanged');\n }\n}\nexports.BaseEntity = BaseEntity;\n//# sourceMappingURL=BaseEntity.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseModel = void 0;\nconst BaseEntity_1 = require(\"./BaseEntity\");\nconst CanvasModel_1 = require(\"../entities/canvas/CanvasModel\");\nclass BaseModel extends BaseEntity_1.BaseEntity {\n constructor(options) {\n super(options);\n }\n performanceTune() {\n return true;\n }\n getParentCanvasModel() {\n if (!this.parent) {\n return null;\n }\n if (this.parent instanceof CanvasModel_1.CanvasModel) {\n return this.parent;\n }\n else if (this.parent instanceof BaseModel) {\n return this.parent.getParentCanvasModel();\n }\n return null;\n }\n getParent() {\n return this.parent;\n }\n setParent(parent) {\n this.parent = parent;\n }\n getSelectionEntities() {\n return [this];\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { type: this.options.type, selected: this.options.selected, extras: this.options.extras });\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.extras = event.data.extras;\n this.options.selected = event.data.selected;\n }\n getType() {\n return this.options.type;\n }\n isSelected() {\n return this.options.selected;\n }\n isLocked() {\n const locked = super.isLocked();\n if (locked) {\n return true;\n }\n // delegate this call up to the parent\n if (this.parent) {\n return this.parent.isLocked();\n }\n return false;\n }\n setSelected(selected = true) {\n if (this.options.selected !== selected) {\n this.options.selected = selected;\n this.fireEvent({\n isSelected: selected\n }, 'selectionChanged');\n }\n }\n remove() {\n this.fireEvent({}, 'entityRemoved');\n }\n}\nexports.BaseModel = BaseModel;\n//# sourceMappingURL=BaseModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BasePositionModel = void 0;\nconst BaseModel_1 = require(\"./BaseModel\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nclass BasePositionModel extends BaseModel_1.BaseModel {\n constructor(options) {\n super(options);\n this.position = options.position || new geometry_1.Point(0, 0);\n }\n setPosition(x, y) {\n if (x instanceof geometry_1.Point) {\n this.position = x;\n }\n else {\n this.position = new geometry_1.Point(x, y);\n }\n this.fireEvent({}, 'positionChanged');\n }\n getBoundingBox() {\n return new geometry_1.Rectangle(this.position, 0, 0);\n }\n deserialize(event) {\n super.deserialize(event);\n this.position = new geometry_1.Point(event.data.x, event.data.y);\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { x: this.position.x, y: this.position.y });\n }\n getPosition() {\n return this.position;\n }\n getX() {\n return this.position.x;\n }\n getY() {\n return this.position.y;\n }\n}\nexports.BasePositionModel = BasePositionModel;\n//# sourceMappingURL=BasePositionModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractDisplacementState = void 0;\nconst State_1 = require(\"./State\");\nconst Action_1 = require(\"../core-actions/Action\");\nclass AbstractDisplacementState extends State_1.State {\n constructor(options) {\n super(options);\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_DOWN,\n fire: (actionEvent) => {\n const { clientX, clientY } = actionEvent.event;\n this.handleMoveStart(clientX, clientY);\n }\n }));\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_MOVE,\n fire: (actionEvent) => {\n const { event } = actionEvent;\n if (event.buttons === 0) {\n // If buttons is 0, it means the mouse is not down, the user may have released it\n // outside of the canvas, then we eject the state\n this.eject();\n return;\n }\n const { clientX, clientY } = event;\n this.handleMove(clientX, clientY, event);\n }\n }));\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_UP,\n fire: () => this.handleMoveEnd()\n }));\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.TOUCH_START,\n fire: (actionEvent) => {\n const { clientX, clientY } = actionEvent.event.touches[0];\n this.handleMoveStart(clientX, clientY);\n }\n }));\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.TOUCH_MOVE,\n fire: (actionEvent) => {\n const { event } = actionEvent;\n const { clientX, clientY } = event.touches[0];\n this.handleMove(clientX, clientY, event);\n }\n }));\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.TOUCH_END,\n fire: () => this.handleMoveEnd()\n }));\n }\n handleMoveStart(x, y) {\n this.initialX = x;\n this.initialY = y;\n const rel = this.engine.getRelativePoint(x, y);\n this.initialXRelative = rel.x;\n this.initialYRelative = rel.y;\n }\n handleMove(x, y, event) {\n this.fireMouseMoved({\n displacementX: x - this.initialX,\n displacementY: y - this.initialY,\n virtualDisplacementX: (x - this.initialX) / (this.engine.getModel().getZoomLevel() / 100.0),\n virtualDisplacementY: (y - this.initialY) / (this.engine.getModel().getZoomLevel() / 100.0),\n event\n });\n }\n handleMoveEnd() {\n this.eject();\n }\n}\nexports.AbstractDisplacementState = AbstractDisplacementState;\n//# sourceMappingURL=AbstractDisplacementState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.State = void 0;\nconst Action_1 = require(\"../core-actions/Action\");\nconst _ = require(\"lodash\");\nclass State {\n constructor(options) {\n this.actions = [];\n this.keys = [];\n this.childStates = [];\n this.options = options;\n }\n setEngine(engine) {\n this.engine = engine;\n }\n getOptions() {\n return this.options;\n }\n eject() {\n this.engine.getStateMachine().popState();\n }\n transitionWithEvent(state, event) {\n this.engine.getStateMachine().pushState(state);\n this.engine.getActionEventBus().fireAction(event);\n }\n registerAction(action) {\n this.actions.push(action);\n }\n tryActivateParentState(keys) {\n if (this.keys.length > 0 && !this.isKeysFullfilled(keys)) {\n this.eject();\n return true;\n }\n return false;\n }\n tryActivateChildState(keys) {\n const state = this.findStateToActivate(keys);\n if (state) {\n this.engine.getStateMachine().pushState(state);\n return true;\n }\n return false;\n }\n findStateToActivate(keys) {\n for (let child of this.childStates) {\n if (child.isKeysFullfilled(keys)) {\n return child;\n }\n }\n return null;\n }\n isKeysFullfilled(keys) {\n return _.intersection(this.keys, keys).length === this.keys.length;\n }\n activated(previous) {\n const keys = this.engine.getActionEventBus().getKeys();\n if (this.tryActivateParentState(keys) || this.tryActivateChildState(keys)) {\n return;\n }\n // perhaps we need to pop again?\n this.handler1 = this.engine.getActionEventBus().registerAction(new Action_1.Action({\n type: Action_1.InputType.KEY_DOWN,\n fire: () => {\n this.tryActivateChildState(this.engine.getActionEventBus().getKeys());\n }\n }));\n this.handler2 = this.engine.getActionEventBus().registerAction(new Action_1.Action({\n type: Action_1.InputType.KEY_UP,\n fire: () => {\n this.tryActivateParentState(this.engine.getActionEventBus().getKeys());\n }\n }));\n for (let action of this.actions) {\n this.engine.getActionEventBus().registerAction(action);\n }\n }\n deactivated(next) {\n if (this.handler1) {\n this.handler1();\n }\n if (this.handler2) {\n this.handler2();\n }\n // if this happens, we are going into heirachial state machine mode\n for (let action of this.actions) {\n this.engine.getActionEventBus().deregisterAction(action);\n }\n }\n}\nexports.State = State;\n//# sourceMappingURL=State.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StateMachine = void 0;\nconst _ = require(\"lodash\");\nconst BaseObserver_1 = require(\"../core/BaseObserver\");\nclass StateMachine extends BaseObserver_1.BaseObserver {\n constructor(engine) {\n super();\n this.engine = engine;\n this.stateStack = [];\n }\n getCurrentState() {\n return this.currentState;\n }\n pushState(state) {\n this.stateStack.push(state);\n this.setState(state);\n }\n popState() {\n this.stateStack.pop();\n this.setState(_.last(this.stateStack));\n }\n setState(state) {\n state.setEngine(this.engine);\n // if no state object, get the initial state\n if (this.currentState) {\n this.currentState.deactivated(state);\n }\n const old = this.currentState;\n this.currentState = state;\n if (this.currentState) {\n this.currentState.activated(old);\n this.fireEvent({\n newState: state\n }, 'stateChanged');\n }\n }\n}\nexports.StateMachine = StateMachine;\n//# sourceMappingURL=StateMachine.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractFactory = void 0;\n/**\n * Base factory for all the different types of entities.\n * Gets registered with the engine, and is used to generate models\n */\nclass AbstractFactory {\n constructor(type) {\n this.type = type;\n }\n setDiagramEngine(engine) {\n this.engine = engine;\n }\n setFactoryBank(bank) {\n this.bank = bank;\n }\n getType() {\n return this.type;\n }\n}\nexports.AbstractFactory = AbstractFactory;\n//# sourceMappingURL=AbstractFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractModelFactory = void 0;\nconst AbstractFactory_1 = require(\"./AbstractFactory\");\nclass AbstractModelFactory extends AbstractFactory_1.AbstractFactory {\n}\nexports.AbstractModelFactory = AbstractModelFactory;\n//# sourceMappingURL=AbstractModelFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbstractReactFactory = void 0;\nconst AbstractModelFactory_1 = require(\"./AbstractModelFactory\");\n/**\n * Further extends the AbstractFactory to add widget generation capability.\n */\nclass AbstractReactFactory extends AbstractModelFactory_1.AbstractModelFactory {\n}\nexports.AbstractReactFactory = AbstractReactFactory;\n//# sourceMappingURL=AbstractReactFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseObserver = void 0;\nconst Toolkit_1 = require(\"../Toolkit\");\n/**\n * Base observer pattern class for working with listeners\n */\nclass BaseObserver {\n constructor() {\n this.listeners = {};\n }\n fireEventInternal(fire, k, event) {\n this.iterateListeners((listener) => {\n // returning false here will instruct itteration to stop\n if (!fire && !event.firing) {\n return false;\n }\n // fire selected listener\n if (listener[k]) {\n listener[k](event);\n }\n });\n }\n fireEvent(event, k) {\n event = Object.assign({ firing: true, stopPropagation: () => {\n event.firing = false;\n } }, event);\n // fire pre\n this.fireEventInternal(true, 'eventWillFire', Object.assign(Object.assign({}, event), { function: k }));\n // fire main event\n this.fireEventInternal(false, k, event);\n // fire post\n this.fireEventInternal(true, 'eventDidFire', Object.assign(Object.assign({}, event), { function: k }));\n }\n iterateListeners(cb) {\n for (let id in this.listeners) {\n const res = cb(this.listeners[id]);\n // cancel itteration on false\n if (res === false) {\n return;\n }\n }\n }\n getListenerHandle(listener) {\n for (let id in this.listeners) {\n if (this.listeners[id] === listener) {\n return {\n id: id,\n listener: listener,\n deregister: () => {\n delete this.listeners[id];\n }\n };\n }\n }\n }\n registerListener(listener) {\n const id = Toolkit_1.Toolkit.UID();\n this.listeners[id] = listener;\n return {\n id: id,\n listener: listener,\n deregister: () => {\n delete this.listeners[id];\n }\n };\n }\n deregisterListener(listener) {\n if (typeof listener === 'object') {\n listener.deregister();\n return true;\n }\n const handle = this.getListenerHandle(listener);\n if (handle) {\n handle.deregister();\n return true;\n }\n return false;\n }\n}\nexports.BaseObserver = BaseObserver;\n//# sourceMappingURL=BaseObserver.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FactoryBank = void 0;\nconst BaseObserver_1 = require(\"./BaseObserver\");\nconst _ = require(\"lodash\");\n/**\n * Store and managed Factories that extend from Abstractfactory\n */\nclass FactoryBank extends BaseObserver_1.BaseObserver {\n constructor() {\n super();\n this.factories = {};\n }\n getFactories() {\n return _.values(this.factories);\n }\n clearFactories() {\n for (let factory in this.factories) {\n this.deregisterFactory(factory);\n }\n }\n getFactory(type) {\n if (!this.factories[type]) {\n throw new Error(`Cannot find factory with type [${type}]`);\n }\n return this.factories[type];\n }\n registerFactory(factory) {\n factory.setFactoryBank(this);\n this.factories[factory.getType()] = factory;\n // todo fixme\n this.fireEvent({ factory }, 'factoryAdded');\n }\n deregisterFactory(type) {\n const factory = this.factories[type];\n factory.setFactoryBank(null);\n delete this.factories[type];\n // todo fixme\n this.fireEvent({ factory }, 'factoryRemoved');\n }\n}\nexports.FactoryBank = FactoryBank;\n//# sourceMappingURL=FactoryBank.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ModelGeometryInterface.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CanvasModel = void 0;\nconst _ = require(\"lodash\");\nconst BaseEntity_1 = require(\"../../core-models/BaseEntity\");\nclass CanvasModel extends BaseEntity_1.BaseEntity {\n constructor(options = {}) {\n super(Object.assign({ zoom: 100, gridSize: 0, offsetX: 0, offsetY: 0 }, options));\n this.layers = [];\n }\n getSelectionEntities() {\n return _.flatMap(this.layers, (layer) => {\n return layer.getSelectionEntities();\n });\n }\n getSelectedEntities() {\n return _.filter(this.getSelectionEntities(), (ob) => {\n return ob.isSelected();\n });\n }\n clearSelection() {\n _.forEach(this.getSelectedEntities(), (element) => {\n element.setSelected(false);\n });\n }\n getModels() {\n return _.flatMap(this.layers, (layer) => {\n return _.values(layer.getModels());\n });\n }\n addLayer(layer) {\n layer.setParent(this);\n layer.registerListener({\n entityRemoved: (event) => { }\n });\n this.layers.push(layer);\n }\n removeLayer(layer) {\n const index = this.layers.indexOf(layer);\n if (index !== -1) {\n this.layers.splice(index, 1);\n return true;\n }\n return false;\n }\n getLayers() {\n return this.layers;\n }\n setGridSize(size = 0) {\n this.options.gridSize = size;\n this.fireEvent({ size: size }, 'gridUpdated');\n }\n getGridPosition(pos) {\n if (this.options.gridSize === 0) {\n return pos;\n }\n return this.options.gridSize * Math.floor((pos + this.options.gridSize / 2) / this.options.gridSize);\n }\n deserializeModel(data, engine) {\n const models = {};\n const promises = {};\n const resolvers = {};\n const event = {\n data: data,\n engine: engine,\n registerModel: (model) => {\n models[model.getID()] = model;\n if (resolvers[model.getID()]) {\n resolvers[model.getID()](model);\n }\n },\n getModel(id) {\n if (models[id]) {\n return Promise.resolve(models[id]);\n }\n if (!promises[id]) {\n promises[id] = new Promise((resolve) => {\n resolvers[id] = resolve;\n });\n }\n return promises[id];\n }\n };\n this.deserialize(event);\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.offsetX = event.data.offsetX;\n this.options.offsetY = event.data.offsetY;\n this.options.zoom = event.data.zoom;\n this.options.gridSize = event.data.gridSize;\n _.forEach(event.data.layers, (layer) => {\n const layerOb = event.engine.getFactoryForLayer(layer.type).generateModel({\n initialConfig: layer\n });\n layerOb.deserialize(Object.assign(Object.assign({}, event), { data: layer }));\n this.addLayer(layerOb);\n });\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { offsetX: this.options.offsetX, offsetY: this.options.offsetY, zoom: this.options.zoom, gridSize: this.options.gridSize, layers: _.map(this.layers, (layer) => {\n return layer.serialize();\n }) });\n }\n setZoomLevel(zoom) {\n this.options.zoom = zoom;\n this.fireEvent({ zoom }, 'zoomUpdated');\n }\n setOffset(offsetX, offsetY) {\n this.options.offsetX = offsetX;\n this.options.offsetY = offsetY;\n this.fireEvent({ offsetX, offsetY }, 'offsetUpdated');\n }\n setOffsetX(offsetX) {\n this.setOffset(offsetX, this.options.offsetY);\n }\n setOffsetY(offsetY) {\n this.setOffset(this.options.offsetX, offsetY);\n }\n getOffsetY() {\n return this.options.offsetY;\n }\n getOffsetX() {\n return this.options.offsetX;\n }\n getZoomLevel() {\n return this.options.zoom;\n }\n}\nexports.CanvasModel = CanvasModel;\n//# sourceMappingURL=CanvasModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CanvasWidget = void 0;\nconst React = require(\"react\");\nconst TransformLayerWidget_1 = require(\"../layer/TransformLayerWidget\");\nconst styled_1 = require(\"@emotion/styled\");\nconst SmartLayerWidget_1 = require(\"../layer/SmartLayerWidget\");\nvar S;\n(function (S) {\n S.Canvas = styled_1.default.div `\n\t\tposition: relative;\n\t\tcursor: move;\n\t\toverflow: hidden;\n\t`;\n})(S || (S = {}));\nclass CanvasWidget extends React.Component {\n constructor(props) {\n super(props);\n this.ref = React.createRef();\n this.state = {\n action: null,\n diagramEngineListener: null\n };\n }\n componentWillUnmount() {\n this.props.engine.deregisterListener(this.canvasListener);\n this.props.engine.setCanvas(null);\n document.removeEventListener('keyup', this.keyUp);\n document.removeEventListener('keydown', this.keyDown);\n }\n registerCanvas() {\n this.props.engine.setCanvas(this.ref.current);\n this.props.engine.iterateListeners((list) => {\n list.rendered && list.rendered();\n });\n }\n componentDidUpdate() {\n this.registerCanvas();\n }\n componentDidMount() {\n this.canvasListener = this.props.engine.registerListener({\n repaintCanvas: () => {\n this.forceUpdate();\n }\n });\n this.keyDown = (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n };\n this.keyUp = (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n };\n document.addEventListener('keyup', this.keyUp);\n document.addEventListener('keydown', this.keyDown);\n this.registerCanvas();\n }\n render() {\n const engine = this.props.engine;\n const model = engine.getModel();\n return (React.createElement(S.Canvas, { className: this.props.className, ref: this.ref, onWheel: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onMouseDown: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onMouseUp: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onMouseMove: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onTouchStart: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onTouchEnd: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n }, onTouchMove: (event) => {\n this.props.engine.getActionEventBus().fireAction({ event });\n } }, model.getLayers().map((layer) => {\n return (React.createElement(TransformLayerWidget_1.TransformLayerWidget, { layer: layer, key: layer.getID() },\n React.createElement(SmartLayerWidget_1.SmartLayerWidget, { layer: layer, engine: this.props.engine, key: layer.getID() })));\n })));\n }\n}\nexports.CanvasWidget = CanvasWidget;\n//# sourceMappingURL=CanvasWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LayerModel = void 0;\nconst BaseModel_1 = require(\"../../core-models/BaseModel\");\nconst _ = require(\"lodash\");\nclass LayerModel extends BaseModel_1.BaseModel {\n constructor(options = {}) {\n super(options);\n this.models = {};\n this.repaintEnabled = true;\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.isSvg = !!event.data.isSvg;\n this.options.transformed = !!event.data.transformed;\n _.forEach(event.data.models, (model) => {\n const modelOb = this.getChildModelFactoryBank(event.engine).getFactory(model.type).generateModel({\n initialConfig: model\n });\n modelOb.deserialize(Object.assign(Object.assign({}, event), { data: model }));\n this.addModel(modelOb);\n });\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { isSvg: this.options.isSvg, transformed: this.options.transformed, models: _.mapValues(this.models, (model) => {\n return model.serialize();\n }) });\n }\n isRepaintEnabled() {\n return this.repaintEnabled;\n }\n allowRepaint(allow = true) {\n this.repaintEnabled = allow;\n }\n remove() {\n if (this.parent) {\n this.parent.removeLayer(this);\n }\n super.remove();\n }\n addModel(model) {\n model.setParent(this);\n this.models[model.getID()] = model;\n }\n getSelectionEntities() {\n return _.flatMap(this.models, (model) => {\n return model.getSelectionEntities();\n });\n }\n getModels() {\n return this.models;\n }\n getModel(id) {\n return this.models[id];\n }\n removeModel(id) {\n const _id = typeof id === 'string' ? id : id.getID();\n if (this.models[_id]) {\n delete this.models[_id];\n return true;\n }\n return false;\n }\n}\nexports.LayerModel = LayerModel;\n//# sourceMappingURL=LayerModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SmartLayerWidget = void 0;\nconst React = require(\"react\");\nclass SmartLayerWidget extends React.Component {\n shouldComponentUpdate() {\n return this.props.layer.isRepaintEnabled();\n }\n render() {\n return this.props.engine.getFactoryForLayer(this.props.layer).generateReactWidget({ model: this.props.layer });\n }\n}\nexports.SmartLayerWidget = SmartLayerWidget;\n//# sourceMappingURL=SmartLayerWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TransformLayerWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nconst react_1 = require(\"@emotion/react\");\nvar S;\n(function (S) {\n const shared = (0, react_1.css) `\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tposition: absolute;\n\t\tpointer-events: none;\n\t\ttransform-origin: 0 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\toverflow: visible;\n\t`;\n S.DivLayer = styled_1.default.div `\n\t\t${shared}\n\t`;\n S.SvgLayer = styled_1.default.svg `\n\t\t${shared}\n\t`;\n})(S || (S = {}));\nclass TransformLayerWidget extends React.Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n getTransform() {\n const model = this.props.layer.getParent();\n return `\n\t\t\ttranslate(\n\t\t\t\t${model.getOffsetX()}px,\n\t\t\t\t${model.getOffsetY()}px)\n\t\t\tscale(\n\t\t\t\t${model.getZoomLevel() / 100.0}\n\t\t\t)\n \t`;\n }\n getTransformStyle() {\n if (this.props.layer.getOptions().transformed) {\n return {\n transform: this.getTransform()\n };\n }\n return {};\n }\n render() {\n if (this.props.layer.getOptions().isSvg) {\n return React.createElement(S.SvgLayer, { style: this.getTransformStyle() }, this.props.children);\n }\n return React.createElement(S.DivLayer, { style: this.getTransformStyle() }, this.props.children);\n }\n}\nexports.TransformLayerWidget = TransformLayerWidget;\n//# sourceMappingURL=TransformLayerWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionBoxLayerFactory = void 0;\nconst React = require(\"react\");\nconst AbstractReactFactory_1 = require(\"../../core/AbstractReactFactory\");\nconst SelectionLayerModel_1 = require(\"./SelectionLayerModel\");\nconst SelectionBoxWidget_1 = require(\"./SelectionBoxWidget\");\nclass SelectionBoxLayerFactory extends AbstractReactFactory_1.AbstractReactFactory {\n constructor() {\n super('selection');\n }\n generateModel(event) {\n return new SelectionLayerModel_1.SelectionLayerModel();\n }\n generateReactWidget(event) {\n return React.createElement(SelectionBoxWidget_1.SelectionBoxWidget, { rect: event.model.box });\n }\n}\nexports.SelectionBoxLayerFactory = SelectionBoxLayerFactory;\n//# sourceMappingURL=SelectionBoxLayerFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionBoxWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.Container = styled_1.default.div `\n\t\tposition: absolute;\n\t\tbackground-color: rgba(0, 192, 255, 0.2);\n\t\tborder: solid 2px rgb(0, 192, 255);\n\t`;\n})(S || (S = {}));\nclass SelectionBoxWidget extends React.Component {\n render() {\n const { rect } = this.props;\n if (!rect)\n return null;\n return (React.createElement(S.Container, { style: {\n top: rect.top,\n left: rect.left,\n width: rect.width,\n height: rect.height\n } }));\n }\n}\nexports.SelectionBoxWidget = SelectionBoxWidget;\n//# sourceMappingURL=SelectionBoxWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionLayerModel = void 0;\nconst LayerModel_1 = require(\"../layer/LayerModel\");\nclass SelectionLayerModel extends LayerModel_1.LayerModel {\n constructor() {\n super({\n transformed: false,\n isSvg: false,\n type: 'selection'\n });\n }\n setBox(rect) {\n this.box = rect;\n }\n getChildModelFactoryBank() {\n // is not used as it doesnt serialize\n return null;\n }\n}\nexports.SelectionLayerModel = SelectionLayerModel;\n//# sourceMappingURL=SelectionLayerModel.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./CanvasEngine\"), exports);\n__exportStar(require(\"./Toolkit\"), exports);\n__exportStar(require(\"./entities/canvas/CanvasModel\"), exports);\n__exportStar(require(\"./core/AbstractFactory\"), exports);\n__exportStar(require(\"./core/AbstractModelFactory\"), exports);\n__exportStar(require(\"./core/AbstractReactFactory\"), exports);\n__exportStar(require(\"./core/BaseObserver\"), exports);\n__exportStar(require(\"./core/FactoryBank\"), exports);\n__exportStar(require(\"./core/ModelGeometryInterface\"), exports);\n__exportStar(require(\"./core-actions/Action\"), exports);\n__exportStar(require(\"./core-actions/ActionEventBus\"), exports);\n__exportStar(require(\"./core-models/BaseEntity\"), exports);\n__exportStar(require(\"./core-models/BaseModel\"), exports);\n__exportStar(require(\"./core-models/BasePositionModel\"), exports);\n__exportStar(require(\"./entities/canvas/CanvasModel\"), exports);\n__exportStar(require(\"./entities/canvas/CanvasWidget\"), exports);\n__exportStar(require(\"./entities/layer/LayerModel\"), exports);\n__exportStar(require(\"./entities/layer/TransformLayerWidget\"), exports);\n__exportStar(require(\"./entities/layer/SmartLayerWidget\"), exports);\n__exportStar(require(\"./entities/selection/SelectionBoxLayerFactory\"), exports);\n__exportStar(require(\"./entities/selection/SelectionBoxWidget\"), exports);\n__exportStar(require(\"./entities/selection/SelectionLayerModel\"), exports);\n__exportStar(require(\"./widgets/PeformanceWidget\"), exports);\n__exportStar(require(\"./core-state/AbstractDisplacementState\"), exports);\n__exportStar(require(\"./core-state/State\"), exports);\n__exportStar(require(\"./core-state/StateMachine\"), exports);\n__exportStar(require(\"./states/DefaultState\"), exports);\n__exportStar(require(\"./states/DragCanvasState\"), exports);\n__exportStar(require(\"./states/SelectingState\"), exports);\n__exportStar(require(\"./states/SelectionBoxState\"), exports);\n__exportStar(require(\"./states/MoveItemsState\"), exports);\n__exportStar(require(\"./actions/DeleteItemsAction\"), exports);\n__exportStar(require(\"./actions/ZoomCanvasAction\"), exports);\n__exportStar(require(\"./actions/PanAndZoomCanvasAction\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultState = void 0;\nconst State_1 = require(\"../core-state/State\");\nconst Action_1 = require(\"../core-actions/Action\");\nconst DragCanvasState_1 = require(\"./DragCanvasState\");\nconst SelectingState_1 = require(\"./SelectingState\");\nconst MoveItemsState_1 = require(\"./MoveItemsState\");\nclass DefaultState extends State_1.State {\n constructor() {\n super({\n name: 'default'\n });\n this.childStates = [new SelectingState_1.SelectingState()];\n // determine what was clicked on\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_DOWN,\n fire: (event) => {\n const element = this.engine.getActionEventBus().getModelForEvent(event);\n // the canvas was clicked on, transition to the dragging canvas state\n if (!element) {\n this.transitionWithEvent(new DragCanvasState_1.DragCanvasState(), event);\n }\n else {\n this.transitionWithEvent(new MoveItemsState_1.MoveItemsState(), event);\n }\n }\n }));\n // touch drags the canvas\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.TOUCH_START,\n fire: (event) => {\n this.transitionWithEvent(new DragCanvasState_1.DragCanvasState(), event);\n }\n }));\n }\n}\nexports.DefaultState = DefaultState;\n//# sourceMappingURL=DefaultState.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DragCanvasState = void 0;\nconst AbstractDisplacementState_1 = require(\"../core-state/AbstractDisplacementState\");\nclass DragCanvasState extends AbstractDisplacementState_1.AbstractDisplacementState {\n constructor(options = {}) {\n super({\n name: 'drag-canvas'\n });\n this.config = Object.assign({ allowDrag: true }, options);\n }\n activated(prev) {\n const _super = Object.create(null, {\n activated: { get: () => super.activated }\n });\n return __awaiter(this, void 0, void 0, function* () {\n _super.activated.call(this, prev);\n this.engine.getModel().clearSelection();\n yield this.engine.repaintCanvas(true);\n // we can block layer rendering because we are only targeting the transforms\n for (let layer of this.engine.getModel().getLayers()) {\n layer.allowRepaint(false);\n }\n this.initialCanvasX = this.engine.getModel().getOffsetX();\n this.initialCanvasY = this.engine.getModel().getOffsetY();\n });\n }\n deactivated(next) {\n super.deactivated(next);\n for (let layer of this.engine.getModel().getLayers()) {\n layer.allowRepaint(true);\n }\n }\n fireMouseMoved(event) {\n if (this.config.allowDrag) {\n this.engine\n .getModel()\n .setOffset(this.initialCanvasX + event.displacementX, this.initialCanvasY + event.displacementY);\n this.engine.repaintCanvas();\n }\n }\n}\nexports.DragCanvasState = DragCanvasState;\n//# sourceMappingURL=DragCanvasState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MoveItemsState = void 0;\nconst AbstractDisplacementState_1 = require(\"../core-state/AbstractDisplacementState\");\nconst Action_1 = require(\"../core-actions/Action\");\nconst BasePositionModel_1 = require(\"../core-models/BasePositionModel\");\nclass MoveItemsState extends AbstractDisplacementState_1.AbstractDisplacementState {\n constructor() {\n super({\n name: 'move-items'\n });\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_DOWN,\n fire: (event) => {\n const element = this.engine.getActionEventBus().getModelForEvent(event);\n if (!element) {\n return;\n }\n if (!element.isSelected()) {\n this.engine.getModel().clearSelection();\n }\n element.setSelected(true);\n this.engine.repaintCanvas();\n }\n }));\n }\n activated(previous) {\n super.activated(previous);\n this.initialPositions = {};\n }\n fireMouseMoved(event) {\n const items = this.engine.getModel().getSelectedEntities();\n const model = this.engine.getModel();\n for (let item of items) {\n if (item instanceof BasePositionModel_1.BasePositionModel) {\n if (item.isLocked()) {\n continue;\n }\n if (!this.initialPositions[item.getID()]) {\n this.initialPositions[item.getID()] = {\n point: item.getPosition(),\n item: item\n };\n }\n const pos = this.initialPositions[item.getID()].point;\n item.setPosition(model.getGridPosition(pos.x + event.virtualDisplacementX), model.getGridPosition(pos.y + event.virtualDisplacementY));\n }\n }\n this.engine.repaintCanvas();\n }\n}\nexports.MoveItemsState = MoveItemsState;\n//# sourceMappingURL=MoveItemsState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectingState = void 0;\nconst State_1 = require(\"../core-state/State\");\nconst Action_1 = require(\"../core-actions/Action\");\nconst SelectionBoxState_1 = require(\"./SelectionBoxState\");\nclass SelectingState extends State_1.State {\n constructor() {\n super({\n name: 'selecting'\n });\n this.keys = ['shift'];\n this.registerAction(new Action_1.Action({\n type: Action_1.InputType.MOUSE_DOWN,\n fire: (event) => {\n const element = this.engine.getActionEventBus().getModelForEvent(event);\n // go into a selection box on the canvas state\n if (!element) {\n this.transitionWithEvent(new SelectionBoxState_1.SelectionBoxState(), event);\n }\n else {\n element.setSelected(true);\n this.engine.repaintCanvas();\n }\n }\n }));\n }\n}\nexports.SelectingState = SelectingState;\n//# sourceMappingURL=SelectingState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SelectionBoxState = void 0;\nconst AbstractDisplacementState_1 = require(\"../core-state/AbstractDisplacementState\");\nconst SelectionLayerModel_1 = require(\"../entities/selection/SelectionLayerModel\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nclass SelectionBoxState extends AbstractDisplacementState_1.AbstractDisplacementState {\n constructor() {\n super({\n name: 'selection-box'\n });\n }\n activated(previous) {\n super.activated(previous);\n this.layer = new SelectionLayerModel_1.SelectionLayerModel();\n this.engine.getModel().addLayer(this.layer);\n }\n deactivated(next) {\n super.deactivated(next);\n this.layer.remove();\n this.engine.repaintCanvas();\n }\n getBoxDimensions(event) {\n let rel;\n if ('touches' in event.event) {\n const touch = event.event.touches[0];\n rel = this.engine.getRelativePoint(touch.clientX, touch.clientY);\n }\n else {\n rel = this.engine.getRelativePoint(event.event.clientX, event.event.clientY);\n }\n return {\n left: rel.x > this.initialXRelative ? this.initialXRelative : rel.x,\n top: rel.y > this.initialYRelative ? this.initialYRelative : rel.y,\n width: Math.abs(rel.x - this.initialXRelative),\n height: Math.abs(rel.y - this.initialYRelative),\n right: rel.x < this.initialXRelative ? this.initialXRelative : rel.x,\n bottom: rel.y < this.initialYRelative ? this.initialYRelative : rel.y\n };\n }\n fireMouseMoved(event) {\n this.layer.setBox(this.getBoxDimensions(event));\n const relative = this.engine.getRelativeMousePoint({\n clientX: this.initialX,\n clientY: this.initialY\n });\n if (event.virtualDisplacementX < 0) {\n relative.x -= Math.abs(event.virtualDisplacementX);\n }\n if (event.virtualDisplacementY < 0) {\n relative.y -= Math.abs(event.virtualDisplacementY);\n }\n const rect = new geometry_1.Rectangle(relative, Math.abs(event.virtualDisplacementX), Math.abs(event.virtualDisplacementY));\n for (let model of this.engine.getModel().getSelectionEntities()) {\n if (model.getBoundingBox) {\n const bounds = model.getBoundingBox();\n if (rect.containsPoint(bounds.getTopLeft()) && rect.containsPoint(bounds.getBottomRight())) {\n model.setSelected(true);\n }\n else {\n model.setSelected(false);\n }\n }\n }\n this.engine.repaintCanvas();\n }\n}\nexports.SelectionBoxState = SelectionBoxState;\n//# sourceMappingURL=SelectionBoxState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PeformanceWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nclass PeformanceWidget extends React.Component {\n shouldComponentUpdate(nextProps, nextState, nextContext) {\n if (!this.props.model.performanceTune()) {\n return true;\n }\n // deserialization event\n if (this.props.model !== nextProps.model) {\n return true;\n }\n // change event\n return !_.isEqual(this.props.serialized, nextProps.serialized);\n }\n render() {\n return this.props.children();\n }\n}\nexports.PeformanceWidget = PeformanceWidget;\n//# sourceMappingURL=PeformanceWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiagramEngine = void 0;\nconst NodeModel_1 = require(\"./entities/node/NodeModel\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\n/**\n * Passed as a parameter to the DiagramWidget\n */\nclass DiagramEngine extends react_canvas_core_1.CanvasEngine {\n constructor(options = {}) {\n super(options);\n this.maxNumberPointsPerLink = 1000;\n // create banks for the different factory types\n this.nodeFactories = new react_canvas_core_1.FactoryBank();\n this.linkFactories = new react_canvas_core_1.FactoryBank();\n this.portFactories = new react_canvas_core_1.FactoryBank();\n this.labelFactories = new react_canvas_core_1.FactoryBank();\n const setup = (factory) => {\n factory.registerListener({\n factoryAdded: (event) => {\n event.factory.setDiagramEngine(this);\n },\n factoryRemoved: (event) => {\n event.factory.setDiagramEngine(null);\n }\n });\n };\n setup(this.nodeFactories);\n setup(this.linkFactories);\n setup(this.portFactories);\n setup(this.labelFactories);\n }\n /**\n * Gets a model and element under the mouse cursor\n */\n getMouseElement(event) {\n var target = event.target;\n var diagramModel = this.model;\n //is it a port\n var element = react_canvas_core_1.Toolkit.closest(target, '.port[data-name]');\n if (element) {\n var nodeElement = react_canvas_core_1.Toolkit.closest(target, '.node[data-nodeid]');\n return diagramModel.getNode(nodeElement.getAttribute('data-nodeid')).getPort(element.getAttribute('data-name'));\n }\n //look for a point\n element = react_canvas_core_1.Toolkit.closest(target, '.point[data-id]');\n if (element) {\n return diagramModel.getLink(element.getAttribute('data-linkid')).getPointModel(element.getAttribute('data-id'));\n }\n //look for a link\n element = react_canvas_core_1.Toolkit.closest(target, '[data-linkid]');\n if (element) {\n return diagramModel.getLink(element.getAttribute('data-linkid'));\n }\n //look for a node\n element = react_canvas_core_1.Toolkit.closest(target, '.node[data-nodeid]');\n if (element) {\n return diagramModel.getNode(element.getAttribute('data-nodeid'));\n }\n return null;\n }\n //!-------------- FACTORIES ------------\n getNodeFactories() {\n return this.nodeFactories;\n }\n getLinkFactories() {\n return this.linkFactories;\n }\n getLabelFactories() {\n return this.labelFactories;\n }\n getPortFactories() {\n return this.portFactories;\n }\n getFactoryForNode(node) {\n if (typeof node === 'string') {\n return this.nodeFactories.getFactory(node);\n }\n return this.nodeFactories.getFactory(node.getType());\n }\n getFactoryForLink(link) {\n if (typeof link === 'string') {\n return this.linkFactories.getFactory(link);\n }\n return this.linkFactories.getFactory(link.getType());\n }\n getFactoryForLabel(label) {\n if (typeof label === 'string') {\n return this.labelFactories.getFactory(label);\n }\n return this.labelFactories.getFactory(label.getType());\n }\n getFactoryForPort(port) {\n if (typeof port === 'string') {\n return this.portFactories.getFactory(port);\n }\n return this.portFactories.getFactory(port.getType());\n }\n generateWidgetForLink(link) {\n return this.getFactoryForLink(link).generateReactWidget({ model: link });\n }\n generateWidgetForNode(node) {\n return this.getFactoryForNode(node).generateReactWidget({ model: node });\n }\n getNodeElement(node) {\n const selector = this.canvas.querySelector(`.node[data-nodeid=\"${node.getID()}\"]`);\n if (selector === null) {\n throw new Error('Cannot find Node element with nodeID: [' + node.getID() + ']');\n }\n return selector;\n }\n getNodePortElement(port) {\n var selector = this.canvas.querySelector(`.port[data-name=\"${port.getName()}\"][data-nodeid=\"${port.getParent().getID()}\"]`);\n if (selector === null) {\n throw new Error('Cannot find Node Port element with nodeID: [' +\n port.getParent().getID() +\n '] and name: [' +\n port.getName() +\n ']');\n }\n return selector;\n }\n getPortCenter(port) {\n return this.getPortCoords(port).getOrigin();\n }\n /**\n * Calculate rectangular coordinates of the port passed in.\n */\n getPortCoords(port, element) {\n if (!this.canvas) {\n throw new Error('Canvas needs to be set first');\n }\n if (!element) {\n element = this.getNodePortElement(port);\n }\n const sourceRect = element.getBoundingClientRect();\n const point = this.getRelativeMousePoint({\n clientX: sourceRect.left,\n clientY: sourceRect.top\n });\n const zoom = this.model.getZoomLevel() / 100.0;\n return new geometry_1.Rectangle(point.x, point.y, sourceRect.width / zoom, sourceRect.height / zoom);\n }\n /**\n * Determine the width and height of the node passed in.\n * It currently assumes nodes have a rectangular shape, can be overriden for customised shapes.\n */\n getNodeDimensions(node) {\n if (!this.canvas) {\n return {\n width: 0,\n height: 0\n };\n }\n const nodeElement = this.getNodeElement(node);\n const nodeRect = nodeElement.getBoundingClientRect();\n return {\n width: nodeRect.width,\n height: nodeRect.height\n };\n }\n getBoundingNodesRect(nodes) {\n if (nodes) {\n if (nodes.length === 0) {\n return new geometry_1.Rectangle(0, 0, 0, 0);\n }\n return geometry_1.Polygon.boundingBoxFromPolygons(nodes.map((node) => node.getBoundingBox()));\n }\n }\n zoomToFitSelectedNodes(options) {\n const nodes = this.model\n .getSelectedEntities()\n .filter((entity) => entity instanceof NodeModel_1.NodeModel);\n this.zoomToFitNodes({\n margin: options.margin,\n maxZoom: options.maxZoom,\n nodes: nodes.length > 0 ? nodes : null\n });\n }\n zoomToFitNodes(options) {\n let margin = options || 0;\n let nodes = [];\n let maxZoom = null;\n if (!!options && typeof options == 'object') {\n margin = options.margin || 0;\n nodes = options.nodes || [];\n maxZoom = options.maxZoom || null;\n }\n // no node selected\n if (nodes.length === 0) {\n nodes = this.model.getNodes();\n }\n const nodesRect = this.getBoundingNodesRect(nodes);\n if (nodesRect) {\n // there is something we should zoom on\n let canvasRect = this.canvas.getBoundingClientRect();\n const calculate = (margin = 0) => {\n // work out zoom\n const xFactor = this.canvas.clientWidth / (nodesRect.getWidth() + margin * 2);\n const yFactor = this.canvas.clientHeight / (nodesRect.getHeight() + margin * 2);\n let zoomFactor = xFactor < yFactor ? xFactor : yFactor;\n if (maxZoom && zoomFactor > maxZoom) {\n zoomFactor = maxZoom;\n }\n return {\n zoom: zoomFactor,\n x: canvasRect.width / 2 -\n ((nodesRect.getWidth() + margin * 2) * zoomFactor) / 2 +\n margin -\n nodesRect.getTopLeft().x,\n y: canvasRect.height / 2 -\n ((nodesRect.getHeight() + margin * 2) * zoomFactor) / 2 +\n margin -\n nodesRect.getTopLeft().y\n };\n };\n let params = calculate(0);\n if (margin) {\n if (params.x < margin || params.y < margin) {\n params = calculate(margin);\n }\n }\n // apply\n this.model.setZoomLevel(params.zoom * 100);\n this.model.setOffset(params.x, params.y);\n this.repaintCanvas();\n }\n }\n getMaxNumberPointsPerLink() {\n return this.maxNumberPointsPerLink;\n }\n setMaxNumberPointsPerLink(max) {\n this.maxNumberPointsPerLink = max;\n }\n}\nexports.DiagramEngine = DiagramEngine;\n//# sourceMappingURL=DiagramEngine.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LabelModel = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass LabelModel extends react_canvas_core_1.BaseModel {\n constructor(options) {\n super(Object.assign(Object.assign({}, options), { offsetX: options.offsetX || 0, offsetY: options.offsetY || 0 }));\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.offsetX = event.data.offsetX;\n this.options.offsetY = event.data.offsetY;\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { offsetX: this.options.offsetX, offsetY: this.options.offsetY });\n }\n}\nexports.LabelModel = LabelModel;\n//# sourceMappingURL=LabelModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LabelWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.Label = styled_1.default.div `\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t`;\n S.Foreign = styled_1.default.foreignObject `\n\t\tpointer-events: none;\n\t\toverflow: visible;\n\t`;\n})(S || (S = {}));\nclass LabelWidget extends React.Component {\n constructor(props) {\n super(props);\n this.findPathAndRelativePositionToRenderLabel = (index) => {\n // an array to hold all path lengths, making sure we hit the DOM only once to fetch this information\n const link = this.props.label.getParent();\n const lengths = link.getRenderedPath().map((path) => path.getTotalLength());\n // calculate the point where we want to display the label\n let labelPosition = lengths.reduce((previousValue, currentValue) => previousValue + currentValue, 0) *\n (index / (link.getLabels().length + 1));\n // find the path where the label will be rendered and calculate the relative position\n let pathIndex = 0;\n while (pathIndex < link.getRenderedPath().length) {\n if (labelPosition - lengths[pathIndex] < 0) {\n return {\n path: link.getRenderedPath()[pathIndex],\n position: labelPosition\n };\n }\n // keep searching\n labelPosition -= lengths[pathIndex];\n pathIndex++;\n }\n };\n this.calculateLabelPosition = () => {\n const found = this.findPathAndRelativePositionToRenderLabel(this.props.index + 1);\n if (!found) {\n return;\n }\n const { path, position } = found;\n const labelDimensions = {\n width: this.ref.current.offsetWidth,\n height: this.ref.current.offsetHeight\n };\n const pathCentre = path.getPointAtLength(position);\n const labelCoordinates = {\n x: pathCentre.x - labelDimensions.width / 2 + this.props.label.getOptions().offsetX,\n y: pathCentre.y - labelDimensions.height / 2 + this.props.label.getOptions().offsetY\n };\n this.ref.current.style.transform = `translate(${labelCoordinates.x}px, ${labelCoordinates.y}px)`;\n };\n this.ref = React.createRef();\n }\n componentDidUpdate() {\n window.requestAnimationFrame(this.calculateLabelPosition);\n }\n componentDidMount() {\n window.requestAnimationFrame(this.calculateLabelPosition);\n }\n render() {\n const canvas = this.props.engine.getCanvas();\n return (React.createElement(S.Foreign, { key: this.props.label.getID(), width: canvas === null || canvas === void 0 ? void 0 : canvas.offsetWidth, height: canvas === null || canvas === void 0 ? void 0 : canvas.offsetHeight },\n React.createElement(S.Label, { ref: this.ref }, this.props.engine.getFactoryForLabel(this.props.label).generateReactWidget({ model: this.props.label }))));\n }\n}\nexports.LabelWidget = LabelWidget;\n//# sourceMappingURL=LabelWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkLayerFactory = void 0;\nconst React = require(\"react\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst LinkLayerModel_1 = require(\"./LinkLayerModel\");\nconst LinkLayerWidget_1 = require(\"./LinkLayerWidget\");\nclass LinkLayerFactory extends react_canvas_core_1.AbstractReactFactory {\n constructor() {\n super('diagram-links');\n }\n generateModel(event) {\n return new LinkLayerModel_1.LinkLayerModel();\n }\n generateReactWidget(event) {\n return React.createElement(LinkLayerWidget_1.LinkLayerWidget, { layer: event.model, engine: this.engine });\n }\n}\nexports.LinkLayerFactory = LinkLayerFactory;\n//# sourceMappingURL=LinkLayerFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkLayerModel = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst LinkModel_1 = require(\"../link/LinkModel\");\nclass LinkLayerModel extends react_canvas_core_1.LayerModel {\n constructor() {\n super({\n type: 'diagram-links',\n isSvg: true,\n transformed: true\n });\n }\n addModel(model) {\n if (!(model instanceof LinkModel_1.LinkModel)) {\n throw new Error('Can only add links to this layer');\n }\n model.registerListener({\n entityRemoved: () => {\n this.getParent().removeLink(model);\n }\n });\n super.addModel(model);\n }\n getLinks() {\n return this.getModels();\n }\n getChildModelFactoryBank(engine) {\n return engine.getLinkFactories();\n }\n}\nexports.LinkLayerModel = LinkLayerModel;\n//# sourceMappingURL=LinkLayerModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkLayerWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nconst _ = require(\"lodash\");\nconst LinkWidget_1 = require(\"../link/LinkWidget\");\nvar S;\n(function (S) {\n S.Container = styled_1.default.div ``;\n})(S || (S = {}));\nclass LinkLayerWidget extends React.Component {\n render() {\n return (React.createElement(React.Fragment, null, \n //only perform these actions when we have a diagram\n _.map(this.props.layer.getLinks(), (link) => {\n return React.createElement(LinkWidget_1.LinkWidget, { key: link.getID(), link: link, diagramEngine: this.props.engine });\n })));\n }\n}\nexports.LinkLayerWidget = LinkLayerWidget;\n//# sourceMappingURL=LinkLayerWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkModel = void 0;\nconst PointModel_1 = require(\"./PointModel\");\nconst _ = require(\"lodash\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass LinkModel extends react_canvas_core_1.BaseModel {\n constructor(options) {\n super(options);\n this.points = [\n new PointModel_1.PointModel({\n link: this\n }),\n new PointModel_1.PointModel({\n link: this\n })\n ];\n this.sourcePort = null;\n this.targetPort = null;\n this.renderedPaths = [];\n this.labels = [];\n }\n getBoundingBox() {\n return geometry_1.Polygon.boundingBoxFromPoints(_.map(this.points, (point) => {\n return point.getPosition();\n }));\n }\n getSelectionEntities() {\n if (this.getTargetPort() && this.getSourcePort()) {\n return super.getSelectionEntities().concat(_.slice(this.points, 1, this.points.length - 1));\n }\n // allow selection of the first point\n if (!this.getSourcePort()) {\n return super.getSelectionEntities().concat(_.slice(this.points, 0, this.points.length - 1));\n }\n // allow selection of the last point\n if (!this.getTargetPort()) {\n return super.getSelectionEntities().concat(_.slice(this.points, 1, this.points.length));\n }\n return super.getSelectionEntities().concat(this.points);\n }\n deserialize(event) {\n super.deserialize(event);\n this.points = _.map(event.data.points || [], (point) => {\n var p = new PointModel_1.PointModel({\n link: this,\n position: new geometry_1.Point(point.x, point.y)\n });\n p.deserialize(Object.assign(Object.assign({}, event), { data: point }));\n return p;\n });\n //deserialize labels\n _.forEach(event.data.labels || [], (label) => {\n let labelOb = event.engine.getFactoryForLabel(label.type).generateModel({});\n labelOb.deserialize(Object.assign(Object.assign({}, event), { data: label }));\n this.addLabel(labelOb);\n });\n // these happen async, so we use the promises for these (they need to be done like this without the async keyword\n // because we need the deserailize method to finish for other methods while this happen\n if (event.data.target) {\n event.getModel(event.data.targetPort).then((model) => {\n this.setTargetPort(model);\n });\n }\n if (event.data.source) {\n event.getModel(event.data.sourcePort).then((model) => {\n this.setSourcePort(model);\n });\n }\n }\n getRenderedPath() {\n return this.renderedPaths;\n }\n setRenderedPaths(paths) {\n this.renderedPaths = paths;\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { source: this.sourcePort ? this.sourcePort.getParent().getID() : null, sourcePort: this.sourcePort ? this.sourcePort.getID() : null, target: this.targetPort ? this.targetPort.getParent().getID() : null, targetPort: this.targetPort ? this.targetPort.getID() : null, points: _.map(this.points, (point) => {\n return point.serialize();\n }), labels: _.map(this.labels, (label) => {\n return label.serialize();\n }) });\n }\n doClone(lookupTable = {}, clone) {\n clone.setPoints(_.map(this.getPoints(), (point) => {\n return point.clone(lookupTable);\n }));\n if (this.sourcePort) {\n clone.setSourcePort(this.sourcePort.clone(lookupTable));\n }\n if (this.targetPort) {\n clone.setTargetPort(this.targetPort.clone(lookupTable));\n }\n }\n clearPort(port) {\n if (this.sourcePort === port) {\n this.setSourcePort(null);\n }\n else if (this.targetPort === port) {\n this.setTargetPort(null);\n }\n }\n remove() {\n if (this.sourcePort) {\n this.sourcePort.removeLink(this);\n }\n if (this.targetPort) {\n this.targetPort.removeLink(this);\n }\n super.remove();\n }\n isLastPoint(point) {\n var index = this.getPointIndex(point);\n return index === this.points.length - 1;\n }\n getPointIndex(point) {\n return this.points.indexOf(point);\n }\n getPointModel(id) {\n for (var i = 0; i < this.points.length; i++) {\n if (this.points[i].getID() === id) {\n return this.points[i];\n }\n }\n return null;\n }\n getPortForPoint(point) {\n if (this.sourcePort !== null && this.getFirstPoint().getID() === point.getID()) {\n return this.sourcePort;\n }\n if (this.targetPort !== null && this.getLastPoint().getID() === point.getID()) {\n return this.targetPort;\n }\n return null;\n }\n getPointForPort(port) {\n if (this.sourcePort !== null && this.sourcePort.getID() === port.getID()) {\n return this.getFirstPoint();\n }\n if (this.targetPort !== null && this.targetPort.getID() === port.getID()) {\n return this.getLastPoint();\n }\n return null;\n }\n getFirstPoint() {\n return this.points[0];\n }\n getLastPoint() {\n return this.points[this.points.length - 1];\n }\n setSourcePort(port) {\n if (port !== null) {\n port.addLink(this);\n }\n if (this.sourcePort !== null) {\n this.sourcePort.removeLink(this);\n }\n this.sourcePort = port;\n this.fireEvent({ port }, 'sourcePortChanged');\n if (port === null || port === void 0 ? void 0 : port.reportedPosition) {\n this.getPointForPort(port).setPosition(port.getCenter());\n }\n }\n getSourcePort() {\n return this.sourcePort;\n }\n getTargetPort() {\n return this.targetPort;\n }\n setTargetPort(port) {\n if (port !== null) {\n port.addLink(this);\n }\n if (this.targetPort !== null) {\n this.targetPort.removeLink(this);\n }\n this.targetPort = port;\n this.fireEvent({ port }, 'targetPortChanged');\n if (port === null || port === void 0 ? void 0 : port.reportedPosition) {\n this.getPointForPort(port).setPosition(port.getCenter());\n }\n }\n point(x, y, index = 1) {\n return this.addPoint(this.generatePoint(x, y), index);\n }\n addLabel(label) {\n label.setParent(this);\n this.labels.push(label);\n }\n getPoints() {\n return this.points;\n }\n getLabels() {\n return this.labels;\n }\n setPoints(points) {\n _.forEach(points, (point) => {\n point.setParent(this);\n });\n this.points = points;\n }\n removePoint(pointModel) {\n this.points.splice(this.getPointIndex(pointModel), 1);\n }\n removePointsBefore(pointModel) {\n this.points.splice(0, this.getPointIndex(pointModel));\n }\n removePointsAfter(pointModel) {\n this.points.splice(this.getPointIndex(pointModel) + 1);\n }\n removeMiddlePoints() {\n if (this.points.length > 2) {\n this.points.splice(1, this.points.length - 2);\n }\n }\n addPoint(pointModel, index = 1) {\n pointModel.setParent(this);\n this.points.splice(index, 0, pointModel);\n return pointModel;\n }\n generatePoint(x = 0, y = 0) {\n return new PointModel_1.PointModel({\n link: this,\n position: new geometry_1.Point(x, y)\n });\n }\n}\nexports.LinkModel = LinkModel;\n//# sourceMappingURL=LinkModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nconst LabelWidget_1 = require(\"../label/LabelWidget\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass LinkWidget extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n sourcePort: null,\n targetPort: null\n };\n }\n componentWillUnmount() {\n if (this.sourceListener) {\n this.sourceListener.deregister();\n }\n if (this.targetListener) {\n this.targetListener.deregister();\n }\n }\n static getDerivedStateFromProps(nextProps, prevState) {\n return {\n sourcePort: nextProps.link.getSourcePort(),\n targetPort: nextProps.link.getTargetPort()\n };\n }\n installTarget() {\n this.targetListener && this.targetListener.deregister();\n if (!this.props.link.getTargetPort())\n return;\n this.targetListener = this.props.link.getTargetPort().registerListener({\n reportInitialPosition: (event) => {\n this.forceUpdate();\n }\n });\n }\n installSource() {\n this.sourceListener && this.sourceListener.deregister();\n if (!this.props.link.getSourcePort())\n return;\n this.sourceListener = this.props.link.getSourcePort().registerListener({\n reportInitialPosition: (event) => {\n this.forceUpdate();\n }\n });\n }\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (prevState.sourcePort !== this.state.sourcePort) {\n this.installSource();\n }\n if (prevState.targetPort !== this.state.targetPort) {\n this.installTarget();\n }\n }\n static generateLinePath(firstPoint, lastPoint) {\n return `M${firstPoint.getX()},${firstPoint.getY()} L ${lastPoint.getX()},${lastPoint.getY()}`;\n }\n componentDidMount() {\n if (this.props.link.getSourcePort()) {\n this.installSource();\n }\n if (this.props.link.getTargetPort()) {\n this.installTarget();\n }\n }\n render() {\n const { link } = this.props;\n // only draw the link when we have reported positions\n if (link.getSourcePort() && !link.getSourcePort().reportedPosition) {\n return null;\n }\n if (link.getTargetPort() && !link.getTargetPort().reportedPosition) {\n return null;\n }\n //generate links\n return (React.createElement(react_canvas_core_1.PeformanceWidget, { model: this.props.link, serialized: this.props.link.serialize() }, () => {\n return (React.createElement(\"g\", { \"data-linkid\": this.props.link.getID() },\n this.props.diagramEngine.generateWidgetForLink(link),\n _.map(this.props.link.getLabels(), (labelModel, index) => {\n return (React.createElement(LabelWidget_1.LabelWidget, { key: labelModel.getID(), engine: this.props.diagramEngine, label: labelModel, index: index }));\n })));\n }));\n }\n}\nexports.LinkWidget = LinkWidget;\n//# sourceMappingURL=LinkWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PointModel = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass PointModel extends react_canvas_core_1.BasePositionModel {\n constructor(options) {\n super(Object.assign(Object.assign({}, options), { type: 'point' }));\n this.parent = options.link;\n }\n isConnectedToPort() {\n return this.parent.getPortForPoint(this) !== null;\n }\n getLink() {\n return this.getParent();\n }\n remove() {\n //clear references\n if (this.parent) {\n this.parent.removePoint(this);\n }\n super.remove();\n }\n isLocked() {\n return super.isLocked() || this.getParent().isLocked();\n }\n}\nexports.PointModel = PointModel;\n//# sourceMappingURL=PointModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLayerFactory = void 0;\nconst React = require(\"react\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst NodeLayerModel_1 = require(\"./NodeLayerModel\");\nconst NodeLayerWidget_1 = require(\"./NodeLayerWidget\");\nclass NodeLayerFactory extends react_canvas_core_1.AbstractReactFactory {\n constructor() {\n super('diagram-nodes');\n }\n generateModel(event) {\n return new NodeLayerModel_1.NodeLayerModel();\n }\n generateReactWidget(event) {\n return React.createElement(NodeLayerWidget_1.NodeLayerWidget, { layer: event.model, engine: this.engine });\n }\n}\nexports.NodeLayerFactory = NodeLayerFactory;\n//# sourceMappingURL=NodeLayerFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLayerModel = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst NodeModel_1 = require(\"../node/NodeModel\");\nclass NodeLayerModel extends react_canvas_core_1.LayerModel {\n constructor() {\n super({\n type: 'diagram-nodes',\n isSvg: false,\n transformed: true\n });\n }\n addModel(model) {\n if (!(model instanceof NodeModel_1.NodeModel)) {\n throw new Error('Can only add nodes to this layer');\n }\n model.registerListener({\n entityRemoved: () => {\n this.getParent().removeNode(model);\n }\n });\n super.addModel(model);\n }\n getChildModelFactoryBank(engine) {\n return engine.getNodeFactories();\n }\n getNodes() {\n return this.getModels();\n }\n}\nexports.NodeLayerModel = NodeLayerModel;\n//# sourceMappingURL=NodeLayerModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLayerWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nconst _ = require(\"lodash\");\nconst NodeWidget_1 = require(\"../node/NodeWidget\");\nvar S;\n(function (S) {\n S.Container = styled_1.default.div ``;\n})(S || (S = {}));\nclass NodeLayerWidget extends React.Component {\n render() {\n return (React.createElement(React.Fragment, null, _.map(this.props.layer.getNodes(), (node) => {\n return React.createElement(NodeWidget_1.NodeWidget, { key: node.getID(), diagramEngine: this.props.engine, node: node });\n })));\n }\n}\nexports.NodeLayerWidget = NodeLayerWidget;\n//# sourceMappingURL=NodeLayerWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeModel = void 0;\nconst _ = require(\"lodash\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass NodeModel extends react_canvas_core_1.BasePositionModel {\n constructor(options) {\n super(options);\n this.ports = {};\n this.width = 0;\n this.height = 0;\n }\n getBoundingBox() {\n return new geometry_1.Rectangle(this.getPosition(), this.width, this.height);\n }\n setPosition(x, y) {\n let old = this.position;\n super.setPosition(x, y);\n //also update the port co-ordinates (for make glorious speed)\n _.forEach(this.ports, (port) => {\n port.setPosition(port.getX() + x - old.x, port.getY() + y - old.y);\n });\n }\n deserialize(event) {\n super.deserialize(event);\n //deserialize ports\n _.forEach(event.data.ports, (port) => {\n let portOb = event.engine.getFactoryForPort(port.type).generateModel({});\n portOb.deserialize(Object.assign(Object.assign({}, event), { data: port }));\n // the links need these\n event.registerModel(portOb);\n this.addPort(portOb);\n });\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { ports: _.map(this.ports, (port) => {\n return port.serialize();\n }) });\n }\n doClone(lookupTable = {}, clone) {\n // also clone the ports\n clone.ports = {};\n _.forEach(this.ports, (port) => {\n clone.addPort(port.clone(lookupTable));\n });\n }\n remove() {\n super.remove();\n _.forEach(this.ports, (port) => {\n _.forEach(port.getLinks(), (link) => {\n link.remove();\n });\n });\n }\n getPortFromID(id) {\n for (var i in this.ports) {\n if (this.ports[i].getID() === id) {\n return this.ports[i];\n }\n }\n return null;\n }\n getLink(id) {\n for (let portID in this.ports) {\n const links = this.ports[portID].getLinks();\n if (links[id]) {\n return links[id];\n }\n }\n }\n getPort(name) {\n return this.ports[name];\n }\n getPorts() {\n return this.ports;\n }\n removePort(port) {\n // clear the port from the links\n for (let link of _.values(port.getLinks())) {\n link.clearPort(port);\n }\n //clear the parent node reference\n if (this.ports[port.getName()]) {\n this.ports[port.getName()].setParent(null);\n delete this.ports[port.getName()];\n }\n }\n addPort(port) {\n port.setParent(this);\n this.ports[port.getName()] = port;\n return port;\n }\n updateDimensions({ width, height }) {\n this.width = width;\n this.height = height;\n }\n}\nexports.NodeModel = NodeModel;\n//# sourceMappingURL=NodeModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst styled_1 = require(\"@emotion/styled\");\nconst resize_observer_polyfill_1 = require(\"resize-observer-polyfill\");\nvar S;\n(function (S) {\n S.Node = styled_1.default.div `\n\t\tposition: absolute;\n\t\t-webkit-touch-callout: none; /* iOS Safari */\n\t\t-webkit-user-select: none; /* Chrome/Safari/Opera */\n\t\tuser-select: none;\n\t\tcursor: move;\n\t\tpointer-events: all;\n\t`;\n})(S || (S = {}));\nclass NodeWidget extends React.Component {\n constructor(props) {\n super(props);\n this.ref = React.createRef();\n }\n componentWillUnmount() {\n var _a;\n this.ob.disconnect();\n this.ob = null;\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.deregister();\n this.listener = null;\n }\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.listener && this.props.node !== prevProps.node) {\n this.listener.deregister();\n this.installSelectionListener();\n }\n }\n installSelectionListener() {\n this.listener = this.props.node.registerListener({\n selectionChanged: (event) => {\n this.forceUpdate();\n }\n });\n }\n updateSize(width, height) {\n this.props.node.updateDimensions({ width, height });\n //now mark the links as dirty\n try {\n _.forEach(this.props.node.getPorts(), (port) => {\n port.updateCoords(this.props.diagramEngine.getPortCoords(port));\n });\n }\n catch (ex) { }\n }\n componentDidMount() {\n // @ts-ignore\n this.ob = new resize_observer_polyfill_1.default((entities) => {\n const bounds = entities[0].contentRect;\n this.updateSize(bounds.width, bounds.height);\n });\n const b = this.ref.current.getBoundingClientRect();\n this.updateSize(b.width, b.height);\n this.ob.observe(this.ref.current);\n this.installSelectionListener();\n }\n render() {\n return (React.createElement(react_canvas_core_1.PeformanceWidget, { model: this.props.node, serialized: this.props.node.serialize() }, () => {\n return (React.createElement(S.Node, { className: \"node\", ref: this.ref, \"data-nodeid\": this.props.node.getID(), style: {\n top: this.props.node.getY(),\n left: this.props.node.getX()\n } }, this.props.diagramEngine.generateWidgetForNode(this.props.node)));\n }));\n }\n}\nexports.NodeWidget = NodeWidget;\n//# sourceMappingURL=NodeWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PortModel = exports.PortModelAlignment = void 0;\nconst _ = require(\"lodash\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nvar PortModelAlignment;\n(function (PortModelAlignment) {\n PortModelAlignment[\"TOP\"] = \"top\";\n PortModelAlignment[\"LEFT\"] = \"left\";\n PortModelAlignment[\"BOTTOM\"] = \"bottom\";\n PortModelAlignment[\"RIGHT\"] = \"right\";\n})(PortModelAlignment = exports.PortModelAlignment || (exports.PortModelAlignment = {}));\nclass PortModel extends react_canvas_core_1.BasePositionModel {\n constructor(options) {\n super(options);\n this.links = {};\n this.reportedPosition = false;\n }\n deserialize(event) {\n super.deserialize(event);\n this.reportedPosition = false;\n this.options.name = event.data.name;\n this.options.alignment = event.data.alignment;\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { name: this.options.name, alignment: this.options.alignment, parentNode: this.parent.getID(), links: _.map(this.links, (link) => {\n return link.getID();\n }) });\n }\n setPosition(x, y) {\n let old = this.position;\n super.setPosition(x, y);\n _.forEach(this.getLinks(), (link) => {\n let point = link.getPointForPort(this);\n point.setPosition(point.getX() + x - old.x, point.getY() + y - old.y);\n });\n }\n doClone(lookupTable = {}, clone) {\n clone.links = {};\n clone.parent = this.getParent().clone(lookupTable);\n }\n getNode() {\n return this.getParent();\n }\n getName() {\n return this.options.name;\n }\n getMaximumLinks() {\n return this.options.maximumLinks;\n }\n setMaximumLinks(maximumLinks) {\n this.options.maximumLinks = maximumLinks;\n }\n removeLink(link) {\n delete this.links[link.getID()];\n }\n addLink(link) {\n this.links[link.getID()] = link;\n }\n getLinks() {\n return this.links;\n }\n createLinkModel() {\n if (_.isFinite(this.options.maximumLinks)) {\n var numberOfLinks = _.size(this.links);\n if (this.options.maximumLinks === 1 && numberOfLinks >= 1) {\n return _.values(this.links)[0];\n }\n else if (numberOfLinks >= this.options.maximumLinks) {\n return null;\n }\n }\n return null;\n }\n reportPosition() {\n _.forEach(this.getLinks(), (link) => {\n link.getPointForPort(this).setPosition(this.getCenter());\n });\n this.fireEvent({\n entity: this\n }, 'reportInitialPosition');\n }\n getCenter() {\n return new geometry_1.Point(this.getX() + this.width / 2, this.getY() + this.height / 2);\n }\n getBoundingBox() {\n return new geometry_1.Rectangle(this.position, this.width, this.height);\n }\n updateCoords(coords) {\n this.width = coords.getWidth();\n this.height = coords.getHeight();\n this.setPosition(coords.getTopLeft());\n this.reportedPosition = true;\n this.reportPosition();\n }\n canLinkToPort(port) {\n return true;\n }\n isLocked() {\n return super.isLocked() || this.getParent().isLocked();\n }\n}\nexports.PortModel = PortModel;\n//# sourceMappingURL=PortModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PortWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass PortWidget extends React.Component {\n constructor(props) {\n super(props);\n this.ref = React.createRef();\n }\n report() {\n this.props.port.updateCoords(this.props.engine.getPortCoords(this.props.port, this.ref.current));\n }\n componentWillUnmount() {\n this.engineListenerHandle && this.engineListenerHandle.deregister();\n }\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (!this.props.port.reportedPosition) {\n this.report();\n }\n }\n componentDidMount() {\n this.engineListenerHandle = this.props.engine.registerListener({\n canvasReady: () => {\n this.report();\n }\n });\n if (this.props.engine.getCanvas()) {\n this.report();\n }\n }\n getExtraProps() {\n if (react_canvas_core_1.Toolkit.TESTING) {\n const links = _.keys(this.props.port.getNode().getPort(this.props.port.getName()).links).join(',');\n return {\n 'data-links': links\n };\n }\n return {};\n }\n render() {\n return (React.createElement(\"div\", Object.assign({ style: this.props.style, ref: this.ref, className: `port ${this.props.className || ''}`, \"data-name\": this.props.port.getName(), \"data-nodeid\": this.props.port.getNode().getID() }, this.getExtraProps()), this.props.children));\n }\n}\nexports.PortWidget = PortWidget;\n//# sourceMappingURL=PortWidget.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./models/DiagramModel\"), exports);\n__exportStar(require(\"./entities/label/LabelModel\"), exports);\n__exportStar(require(\"./entities/link/LinkModel\"), exports);\n__exportStar(require(\"./entities/link/PointModel\"), exports);\n__exportStar(require(\"./entities/link/LinkWidget\"), exports);\n__exportStar(require(\"./entities/link-layer/LinkLayerModel\"), exports);\n__exportStar(require(\"./entities/link-layer/LinkLayerWidget\"), exports);\n__exportStar(require(\"./entities/link-layer/LinkLayerFactory\"), exports);\n__exportStar(require(\"./entities/node-layer/NodeLayerModel\"), exports);\n__exportStar(require(\"./entities/node-layer/NodeLayerWidget\"), exports);\n__exportStar(require(\"./entities/node-layer/NodeLayerFactory\"), exports);\n__exportStar(require(\"./entities/node/NodeModel\"), exports);\n__exportStar(require(\"./entities/node/NodeWidget\"), exports);\n__exportStar(require(\"./entities/port/PortModel\"), exports);\n__exportStar(require(\"./entities/port/PortWidget\"), exports);\n__exportStar(require(\"./states/DefaultDiagramState\"), exports);\n__exportStar(require(\"./states/DragDiagramItemsState\"), exports);\n__exportStar(require(\"./states/DragNewLinkState\"), exports);\n__exportStar(require(\"./DiagramEngine\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiagramModel = void 0;\nconst _ = require(\"lodash\");\nconst LinkModel_1 = require(\"../entities/link/LinkModel\");\nconst NodeModel_1 = require(\"../entities/node/NodeModel\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst NodeLayerModel_1 = require(\"../entities/node-layer/NodeLayerModel\");\nconst LinkLayerModel_1 = require(\"../entities/link-layer/LinkLayerModel\");\nclass DiagramModel extends react_canvas_core_1.CanvasModel {\n constructor(options = {}) {\n super(options);\n this.addLayer(new LinkLayerModel_1.LinkLayerModel());\n this.addLayer(new NodeLayerModel_1.NodeLayerModel());\n }\n deserialize(event) {\n this.layers = [];\n super.deserialize(event);\n }\n addLayer(layer) {\n super.addLayer(layer);\n if (layer instanceof NodeLayerModel_1.NodeLayerModel) {\n this.activeNodeLayer = layer;\n }\n if (layer instanceof LinkLayerModel_1.LinkLayerModel) {\n this.activeLinkLayer = layer;\n }\n }\n getLinkLayers() {\n return _.filter(this.layers, (layer) => {\n return layer instanceof LinkLayerModel_1.LinkLayerModel;\n });\n }\n getNodeLayers() {\n return _.filter(this.layers, (layer) => {\n return layer instanceof NodeLayerModel_1.NodeLayerModel;\n });\n }\n getActiveNodeLayer() {\n if (!this.activeNodeLayer) {\n const layers = this.getNodeLayers();\n if (layers.length === 0) {\n this.addLayer(new NodeLayerModel_1.NodeLayerModel());\n }\n else {\n this.activeNodeLayer = layers[0];\n }\n }\n return this.activeNodeLayer;\n }\n getActiveLinkLayer() {\n if (!this.activeLinkLayer) {\n const layers = this.getLinkLayers();\n if (layers.length === 0) {\n this.addLayer(new LinkLayerModel_1.LinkLayerModel());\n }\n else {\n this.activeLinkLayer = layers[0];\n }\n }\n return this.activeLinkLayer;\n }\n getNode(node) {\n for (const layer of this.getNodeLayers()) {\n const model = layer.getModel(node);\n if (model) {\n return model;\n }\n }\n }\n getLink(link) {\n for (const layer of this.getLinkLayers()) {\n const model = layer.getModel(link);\n if (model) {\n return model;\n }\n }\n }\n addAll(...models) {\n _.forEach(models, (model) => {\n if (model instanceof LinkModel_1.LinkModel) {\n this.addLink(model);\n }\n else if (model instanceof NodeModel_1.NodeModel) {\n this.addNode(model);\n }\n });\n return models;\n }\n addLink(link) {\n this.getActiveLinkLayer().addModel(link);\n this.fireEvent({\n link,\n isCreated: true\n }, 'linksUpdated');\n return link;\n }\n addNode(node) {\n this.getActiveNodeLayer().addModel(node);\n this.fireEvent({ node, isCreated: true }, 'nodesUpdated');\n return node;\n }\n removeLink(link) {\n const removed = _.some(this.getLinkLayers(), (layer) => {\n return layer.removeModel(link);\n });\n if (removed) {\n this.fireEvent({ link, isCreated: false }, 'linksUpdated');\n }\n }\n removeNode(node) {\n const removed = _.some(this.getNodeLayers(), (layer) => {\n return layer.removeModel(node);\n });\n if (removed) {\n this.fireEvent({ node, isCreated: false }, 'nodesUpdated');\n }\n }\n getLinks() {\n return _.flatMap(this.getLinkLayers(), (layer) => {\n return _.values(layer.getModels());\n });\n }\n getNodes() {\n return _.flatMap(this.getNodeLayers(), (layer) => {\n return _.values(layer.getModels());\n });\n }\n}\nexports.DiagramModel = DiagramModel;\n//# sourceMappingURL=DiagramModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultDiagramState = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst PortModel_1 = require(\"../entities/port/PortModel\");\nconst DragNewLinkState_1 = require(\"./DragNewLinkState\");\nconst DragDiagramItemsState_1 = require(\"./DragDiagramItemsState\");\nclass DefaultDiagramState extends react_canvas_core_1.State {\n constructor() {\n super({\n name: 'default-diagrams'\n });\n this.childStates = [new react_canvas_core_1.SelectingState()];\n this.dragCanvas = new react_canvas_core_1.DragCanvasState();\n this.dragNewLink = new DragNewLinkState_1.DragNewLinkState();\n this.dragItems = new DragDiagramItemsState_1.DragDiagramItemsState();\n // determine what was clicked on\n this.registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.MOUSE_DOWN,\n fire: (event) => {\n const element = this.engine.getActionEventBus().getModelForEvent(event);\n // the canvas was clicked on, transition to the dragging canvas state\n if (!element) {\n this.transitionWithEvent(this.dragCanvas, event);\n }\n // initiate dragging a new link\n else if (element instanceof PortModel_1.PortModel) {\n this.transitionWithEvent(this.dragNewLink, event);\n }\n // move the items (and potentially link points)\n else {\n this.transitionWithEvent(this.dragItems, event);\n }\n }\n }));\n // touch drags the canvas\n this.registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.TOUCH_START,\n fire: (event) => {\n this.transitionWithEvent(this.dragCanvas, event);\n }\n }));\n }\n}\nexports.DefaultDiagramState = DefaultDiagramState;\n//# sourceMappingURL=DefaultDiagramState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DragDiagramItemsState = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst _ = require(\"lodash\");\nconst PointModel_1 = require(\"../entities/link/PointModel\");\nconst PortModel_1 = require(\"../entities/port/PortModel\");\nclass DragDiagramItemsState extends react_canvas_core_1.MoveItemsState {\n constructor() {\n super();\n this.registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.MOUSE_UP,\n fire: (event) => {\n const item = this.engine.getMouseElement(event.event);\n if (item instanceof PortModel_1.PortModel) {\n _.forEach(this.initialPositions, (position) => {\n if (position.item instanceof PointModel_1.PointModel) {\n const link = position.item.getParent();\n // only care about the last links\n if (link.getLastPoint() !== position.item) {\n return;\n }\n if (link.getSourcePort().canLinkToPort(item)) {\n link.setTargetPort(item);\n item.reportPosition();\n this.engine.repaintCanvas();\n }\n }\n });\n }\n }\n }));\n }\n}\nexports.DragDiagramItemsState = DragDiagramItemsState;\n//# sourceMappingURL=DragDiagramItemsState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DragNewLinkState = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst PortModel_1 = require(\"../entities/port/PortModel\");\nclass DragNewLinkState extends react_canvas_core_1.AbstractDisplacementState {\n constructor(options = {}) {\n super({ name: 'drag-new-link' });\n this.config = Object.assign({ allowLooseLinks: true, allowLinksFromLockedPorts: false }, options);\n this.registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.MOUSE_DOWN,\n fire: (event) => {\n this.port = this.engine.getMouseElement(event.event);\n if (!this.config.allowLinksFromLockedPorts && this.port.isLocked()) {\n this.eject();\n return;\n }\n this.link = this.port.createLinkModel();\n // if no link is given, just eject the state\n if (!this.link) {\n this.eject();\n return;\n }\n this.link.setSelected(true);\n this.link.setSourcePort(this.port);\n this.engine.getModel().addLink(this.link);\n this.port.reportPosition();\n }\n }));\n this.registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.MOUSE_UP,\n fire: (event) => {\n const model = this.engine.getMouseElement(event.event);\n // check to see if we connected to a new port\n if (model instanceof PortModel_1.PortModel) {\n if (this.port.canLinkToPort(model)) {\n this.link.setTargetPort(model);\n model.reportPosition();\n this.engine.repaintCanvas();\n return;\n }\n else {\n this.link.remove();\n this.engine.repaintCanvas();\n return;\n }\n }\n if (!this.config.allowLooseLinks) {\n this.link.remove();\n this.engine.repaintCanvas();\n }\n }\n }));\n }\n /**\n * Calculates the link's far-end point position on mouse move.\n * In order to be as precise as possible the mouse initialXRelative & initialYRelative are taken into account as well\n * as the possible engine offset\n */\n fireMouseMoved(event) {\n const portPos = this.port.getPosition();\n const zoomLevelPercentage = this.engine.getModel().getZoomLevel() / 100;\n const engineOffsetX = this.engine.getModel().getOffsetX() / zoomLevelPercentage;\n const engineOffsetY = this.engine.getModel().getOffsetY() / zoomLevelPercentage;\n const initialXRelative = this.initialXRelative / zoomLevelPercentage;\n const initialYRelative = this.initialYRelative / zoomLevelPercentage;\n const linkNextX = portPos.x - engineOffsetX + (initialXRelative - portPos.x) + event.virtualDisplacementX;\n const linkNextY = portPos.y - engineOffsetY + (initialYRelative - portPos.y) + event.virtualDisplacementY;\n this.link.getLastPoint().setPosition(linkNextX, linkNextY);\n this.engine.repaintCanvas();\n }\n}\nexports.DragNewLinkState = DragNewLinkState;\n//# sourceMappingURL=DragNewLinkState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiagramEngine = void 0;\nconst NodeModel_1 = require(\"./entities/node/NodeModel\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\n/**\n * Passed as a parameter to the DiagramWidget\n */\nclass DiagramEngine extends react_canvas_core_1.CanvasEngine {\n constructor(options = {}) {\n super(options);\n this.maxNumberPointsPerLink = 1000;\n // create banks for the different factory types\n this.nodeFactories = new react_canvas_core_1.FactoryBank();\n this.linkFactories = new react_canvas_core_1.FactoryBank();\n this.portFactories = new react_canvas_core_1.FactoryBank();\n this.labelFactories = new react_canvas_core_1.FactoryBank();\n const setup = (factory) => {\n factory.registerListener({\n factoryAdded: (event) => {\n event.factory.setDiagramEngine(this);\n },\n factoryRemoved: (event) => {\n event.factory.setDiagramEngine(null);\n }\n });\n };\n setup(this.nodeFactories);\n setup(this.linkFactories);\n setup(this.portFactories);\n setup(this.labelFactories);\n }\n /**\n * Gets a model and element under the mouse cursor\n */\n getMouseElement(event) {\n var target = event.target;\n var diagramModel = this.model;\n //is it a port\n var element = react_canvas_core_1.Toolkit.closest(target, '.port[data-name]');\n if (element) {\n var nodeElement = react_canvas_core_1.Toolkit.closest(target, '.node[data-nodeid]');\n return diagramModel.getNode(nodeElement.getAttribute('data-nodeid')).getPort(element.getAttribute('data-name'));\n }\n //look for a point\n element = react_canvas_core_1.Toolkit.closest(target, '.point[data-id]');\n if (element) {\n return diagramModel.getLink(element.getAttribute('data-linkid')).getPointModel(element.getAttribute('data-id'));\n }\n //look for a link\n element = react_canvas_core_1.Toolkit.closest(target, '[data-linkid]');\n if (element) {\n return diagramModel.getLink(element.getAttribute('data-linkid'));\n }\n //look for a node\n element = react_canvas_core_1.Toolkit.closest(target, '.node[data-nodeid]');\n if (element) {\n return diagramModel.getNode(element.getAttribute('data-nodeid'));\n }\n return null;\n }\n //!-------------- FACTORIES ------------\n getNodeFactories() {\n return this.nodeFactories;\n }\n getLinkFactories() {\n return this.linkFactories;\n }\n getLabelFactories() {\n return this.labelFactories;\n }\n getPortFactories() {\n return this.portFactories;\n }\n getFactoryForNode(node) {\n if (typeof node === 'string') {\n return this.nodeFactories.getFactory(node);\n }\n return this.nodeFactories.getFactory(node.getType());\n }\n getFactoryForLink(link) {\n if (typeof link === 'string') {\n return this.linkFactories.getFactory(link);\n }\n return this.linkFactories.getFactory(link.getType());\n }\n getFactoryForLabel(label) {\n if (typeof label === 'string') {\n return this.labelFactories.getFactory(label);\n }\n return this.labelFactories.getFactory(label.getType());\n }\n getFactoryForPort(port) {\n if (typeof port === 'string') {\n return this.portFactories.getFactory(port);\n }\n return this.portFactories.getFactory(port.getType());\n }\n generateWidgetForLink(link) {\n return this.getFactoryForLink(link).generateReactWidget({ model: link });\n }\n generateWidgetForNode(node) {\n return this.getFactoryForNode(node).generateReactWidget({ model: node });\n }\n getNodeElement(node) {\n const selector = this.canvas.querySelector(`.node[data-nodeid=\"${node.getID()}\"]`);\n if (selector === null) {\n throw new Error('Cannot find Node element with nodeID: [' + node.getID() + ']');\n }\n return selector;\n }\n getNodePortElement(port) {\n var selector = this.canvas.querySelector(`.port[data-name=\"${port.getName()}\"][data-nodeid=\"${port.getParent().getID()}\"]`);\n if (selector === null) {\n throw new Error('Cannot find Node Port element with nodeID: [' +\n port.getParent().getID() +\n '] and name: [' +\n port.getName() +\n ']');\n }\n return selector;\n }\n getPortCenter(port) {\n return this.getPortCoords(port).getOrigin();\n }\n /**\n * Calculate rectangular coordinates of the port passed in.\n */\n getPortCoords(port, element) {\n if (!this.canvas) {\n throw new Error('Canvas needs to be set first');\n }\n if (!element) {\n element = this.getNodePortElement(port);\n }\n const sourceRect = element.getBoundingClientRect();\n const point = this.getRelativeMousePoint({\n clientX: sourceRect.left,\n clientY: sourceRect.top\n });\n const zoom = this.model.getZoomLevel() / 100.0;\n return new geometry_1.Rectangle(point.x, point.y, sourceRect.width / zoom, sourceRect.height / zoom);\n }\n /**\n * Determine the width and height of the node passed in.\n * It currently assumes nodes have a rectangular shape, can be overriden for customised shapes.\n */\n getNodeDimensions(node) {\n if (!this.canvas) {\n return {\n width: 0,\n height: 0\n };\n }\n const nodeElement = this.getNodeElement(node);\n const nodeRect = nodeElement.getBoundingClientRect();\n return {\n width: nodeRect.width,\n height: nodeRect.height\n };\n }\n getBoundingNodesRect(nodes) {\n if (nodes) {\n if (nodes.length === 0) {\n return new geometry_1.Rectangle(0, 0, 0, 0);\n }\n return geometry_1.Polygon.boundingBoxFromPolygons(nodes.map((node) => node.getBoundingBox()));\n }\n }\n zoomToFitSelectedNodes(options) {\n const nodes = this.model\n .getSelectedEntities()\n .filter((entity) => entity instanceof NodeModel_1.NodeModel);\n this.zoomToFitNodes({\n margin: options.margin,\n maxZoom: options.maxZoom,\n nodes: nodes.length > 0 ? nodes : null\n });\n }\n zoomToFitNodes(options) {\n let margin = options || 0;\n let nodes = [];\n let maxZoom = null;\n if (!!options && typeof options == 'object') {\n margin = options.margin || 0;\n nodes = options.nodes || [];\n maxZoom = options.maxZoom || null;\n }\n // no node selected\n if (nodes.length === 0) {\n nodes = this.model.getNodes();\n }\n const nodesRect = this.getBoundingNodesRect(nodes);\n if (nodesRect) {\n // there is something we should zoom on\n let canvasRect = this.canvas.getBoundingClientRect();\n const calculate = (margin = 0) => {\n // work out zoom\n const xFactor = this.canvas.clientWidth / (nodesRect.getWidth() + margin * 2);\n const yFactor = this.canvas.clientHeight / (nodesRect.getHeight() + margin * 2);\n let zoomFactor = xFactor < yFactor ? xFactor : yFactor;\n if (maxZoom && zoomFactor > maxZoom) {\n zoomFactor = maxZoom;\n }\n return {\n zoom: zoomFactor,\n x: canvasRect.width / 2 -\n ((nodesRect.getWidth() + margin * 2) / 2 + nodesRect.getTopLeft().x) * zoomFactor +\n margin,\n y: canvasRect.height / 2 -\n ((nodesRect.getHeight() + margin * 2) / 2 + nodesRect.getTopLeft().y) * zoomFactor +\n margin\n };\n };\n let params = calculate(0);\n if (margin) {\n if (params.x < margin || params.y < margin) {\n params = calculate(margin);\n }\n }\n // apply\n this.model.setZoomLevel(params.zoom * 100);\n this.model.setOffset(params.x, params.y);\n this.repaintCanvas();\n }\n }\n getMaxNumberPointsPerLink() {\n return this.maxNumberPointsPerLink;\n }\n setMaxNumberPointsPerLink(max) {\n this.maxNumberPointsPerLink = max;\n }\n}\nexports.DiagramEngine = DiagramEngine;\n//# sourceMappingURL=DiagramEngine.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LabelModel = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass LabelModel extends react_canvas_core_1.BaseModel {\n constructor(options) {\n super(Object.assign(Object.assign({}, options), { offsetX: options.offsetX || 0, offsetY: options.offsetY || 0 }));\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.offsetX = event.data.offsetX;\n this.options.offsetY = event.data.offsetY;\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { offsetX: this.options.offsetX, offsetY: this.options.offsetY });\n }\n}\nexports.LabelModel = LabelModel;\n//# sourceMappingURL=LabelModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LabelWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.Label = styled_1.default.div `\n\t\tdisplay: inline-block;\n\t\tposition: absolute;\n\t`;\n S.Foreign = styled_1.default.foreignObject `\n\t\tpointer-events: none;\n\t\toverflow: visible;\n\t`;\n})(S || (S = {}));\nclass LabelWidget extends React.Component {\n constructor(props) {\n super(props);\n this.findPathAndRelativePositionToRenderLabel = (index) => {\n // an array to hold all path lengths, making sure we hit the DOM only once to fetch this information\n const link = this.props.label.getParent();\n const lengths = link.getRenderedPath().map((path) => path.getTotalLength());\n // calculate the point where we want to display the label\n let labelPosition = lengths.reduce((previousValue, currentValue) => previousValue + currentValue, 0) *\n (index / (link.getLabels().length + 1));\n // find the path where the label will be rendered and calculate the relative position\n let pathIndex = 0;\n while (pathIndex < link.getRenderedPath().length) {\n if (labelPosition - lengths[pathIndex] < 0) {\n return {\n path: link.getRenderedPath()[pathIndex],\n position: labelPosition\n };\n }\n // keep searching\n labelPosition -= lengths[pathIndex];\n pathIndex++;\n }\n };\n this.calculateLabelPosition = () => {\n const found = this.findPathAndRelativePositionToRenderLabel(this.props.index + 1);\n if (!found) {\n return;\n }\n const { path, position } = found;\n const labelDimensions = {\n width: this.ref.current.offsetWidth,\n height: this.ref.current.offsetHeight\n };\n const pathCentre = path.getPointAtLength(position);\n const labelCoordinates = {\n x: pathCentre.x - labelDimensions.width / 2 + this.props.label.getOptions().offsetX,\n y: pathCentre.y - labelDimensions.height / 2 + this.props.label.getOptions().offsetY\n };\n this.ref.current.style.transform = `translate(${labelCoordinates.x}px, ${labelCoordinates.y}px)`;\n };\n this.ref = React.createRef();\n }\n componentDidUpdate() {\n window.requestAnimationFrame(this.calculateLabelPosition);\n }\n componentDidMount() {\n window.requestAnimationFrame(this.calculateLabelPosition);\n }\n render() {\n const canvas = this.props.engine.getCanvas();\n return (React.createElement(S.Foreign, { key: this.props.label.getID(), width: canvas === null || canvas === void 0 ? void 0 : canvas.offsetWidth, height: canvas === null || canvas === void 0 ? void 0 : canvas.offsetHeight },\n React.createElement(S.Label, { ref: this.ref }, this.props.engine.getFactoryForLabel(this.props.label).generateReactWidget({ model: this.props.label }))));\n }\n}\nexports.LabelWidget = LabelWidget;\n//# sourceMappingURL=LabelWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkLayerFactory = void 0;\nconst React = require(\"react\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst LinkLayerModel_1 = require(\"./LinkLayerModel\");\nconst LinkLayerWidget_1 = require(\"./LinkLayerWidget\");\nclass LinkLayerFactory extends react_canvas_core_1.AbstractReactFactory {\n constructor() {\n super('diagram-links');\n }\n generateModel(event) {\n return new LinkLayerModel_1.LinkLayerModel();\n }\n generateReactWidget(event) {\n return React.createElement(LinkLayerWidget_1.LinkLayerWidget, { layer: event.model, engine: this.engine });\n }\n}\nexports.LinkLayerFactory = LinkLayerFactory;\n//# sourceMappingURL=LinkLayerFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkLayerModel = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst LinkModel_1 = require(\"../link/LinkModel\");\nclass LinkLayerModel extends react_canvas_core_1.LayerModel {\n constructor() {\n super({\n type: 'diagram-links',\n isSvg: true,\n transformed: true\n });\n }\n addModel(model) {\n if (!(model instanceof LinkModel_1.LinkModel)) {\n throw new Error('Can only add links to this layer');\n }\n model.registerListener({\n entityRemoved: () => {\n this.getParent().removeLink(model);\n }\n });\n super.addModel(model);\n }\n getLinks() {\n return this.getModels();\n }\n getChildModelFactoryBank(engine) {\n return engine.getLinkFactories();\n }\n}\nexports.LinkLayerModel = LinkLayerModel;\n//# sourceMappingURL=LinkLayerModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkLayerWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nconst _ = require(\"lodash\");\nconst LinkWidget_1 = require(\"../link/LinkWidget\");\nvar S;\n(function (S) {\n S.Container = styled_1.default.div ``;\n})(S || (S = {}));\nclass LinkLayerWidget extends React.Component {\n render() {\n return (React.createElement(React.Fragment, null, \n //only perform these actions when we have a diagram\n _.map(this.props.layer.getLinks(), (link) => {\n return React.createElement(LinkWidget_1.LinkWidget, { key: link.getID(), link: link, diagramEngine: this.props.engine });\n })));\n }\n}\nexports.LinkLayerWidget = LinkLayerWidget;\n//# sourceMappingURL=LinkLayerWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkModel = void 0;\nconst PointModel_1 = require(\"./PointModel\");\nconst _ = require(\"lodash\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass LinkModel extends react_canvas_core_1.BaseModel {\n constructor(options) {\n super(options);\n this.points = [\n new PointModel_1.PointModel({\n link: this\n }),\n new PointModel_1.PointModel({\n link: this\n })\n ];\n this.sourcePort = null;\n this.targetPort = null;\n this.renderedPaths = [];\n this.labels = [];\n }\n getBoundingBox() {\n return geometry_1.Polygon.boundingBoxFromPoints(_.map(this.points, (point) => {\n return point.getPosition();\n }));\n }\n getSelectionEntities() {\n if (this.getTargetPort() && this.getSourcePort()) {\n return super.getSelectionEntities().concat(_.slice(this.points, 1, this.points.length - 1));\n }\n // allow selection of the first point\n if (!this.getSourcePort()) {\n return super.getSelectionEntities().concat(_.slice(this.points, 0, this.points.length - 1));\n }\n // allow selection of the last point\n if (!this.getTargetPort()) {\n return super.getSelectionEntities().concat(_.slice(this.points, 1, this.points.length));\n }\n return super.getSelectionEntities().concat(this.points);\n }\n deserialize(event) {\n super.deserialize(event);\n this.points = _.map(event.data.points || [], (point) => {\n var p = new PointModel_1.PointModel({\n link: this,\n position: new geometry_1.Point(point.x, point.y)\n });\n p.deserialize(Object.assign(Object.assign({}, event), { data: point }));\n return p;\n });\n //deserialize labels\n _.forEach(event.data.labels || [], (label) => {\n let labelOb = event.engine.getFactoryForLabel(label.type).generateModel({});\n labelOb.deserialize(Object.assign(Object.assign({}, event), { data: label }));\n this.addLabel(labelOb);\n });\n // these happen async, so we use the promises for these (they need to be done like this without the async keyword\n // because we need the deserailize method to finish for other methods while this happen\n if (event.data.target) {\n event.getModel(event.data.targetPort).then((model) => {\n this.setTargetPort(model);\n });\n }\n if (event.data.source) {\n event.getModel(event.data.sourcePort).then((model) => {\n this.setSourcePort(model);\n });\n }\n }\n getRenderedPath() {\n return this.renderedPaths;\n }\n setRenderedPaths(paths) {\n this.renderedPaths = paths;\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { source: this.sourcePort ? this.sourcePort.getParent().getID() : null, sourcePort: this.sourcePort ? this.sourcePort.getID() : null, target: this.targetPort ? this.targetPort.getParent().getID() : null, targetPort: this.targetPort ? this.targetPort.getID() : null, points: _.map(this.points, (point) => {\n return point.serialize();\n }), labels: _.map(this.labels, (label) => {\n return label.serialize();\n }) });\n }\n doClone(lookupTable = {}, clone) {\n clone.setPoints(_.map(this.getPoints(), (point) => {\n return point.clone(lookupTable);\n }));\n if (this.sourcePort) {\n clone.setSourcePort(this.sourcePort.clone(lookupTable));\n }\n if (this.targetPort) {\n clone.setTargetPort(this.targetPort.clone(lookupTable));\n }\n }\n clearPort(port) {\n if (this.sourcePort === port) {\n this.setSourcePort(null);\n }\n else if (this.targetPort === port) {\n this.setTargetPort(null);\n }\n }\n remove() {\n if (this.sourcePort) {\n this.sourcePort.removeLink(this);\n delete this.sourcePort;\n }\n if (this.targetPort) {\n this.targetPort.removeLink(this);\n delete this.targetPort;\n }\n super.remove();\n }\n isLastPoint(point) {\n var index = this.getPointIndex(point);\n return index === this.points.length - 1;\n }\n getPointIndex(point) {\n return this.points.indexOf(point);\n }\n getPointModel(id) {\n for (var i = 0; i < this.points.length; i++) {\n if (this.points[i].getID() === id) {\n return this.points[i];\n }\n }\n return null;\n }\n getPortForPoint(point) {\n if (this.sourcePort !== null && this.getFirstPoint().getID() === point.getID()) {\n return this.sourcePort;\n }\n if (this.targetPort !== null && this.getLastPoint().getID() === point.getID()) {\n return this.targetPort;\n }\n return null;\n }\n getPointForPort(port) {\n if (this.sourcePort !== null && this.sourcePort.getID() === port.getID()) {\n return this.getFirstPoint();\n }\n if (this.targetPort !== null && this.targetPort.getID() === port.getID()) {\n return this.getLastPoint();\n }\n return null;\n }\n getFirstPoint() {\n return this.points[0];\n }\n getLastPoint() {\n return this.points[this.points.length - 1];\n }\n setSourcePort(port) {\n if (port !== null) {\n port.addLink(this);\n }\n if (this.sourcePort !== null) {\n this.sourcePort.removeLink(this);\n }\n this.sourcePort = port;\n this.fireEvent({ port }, 'sourcePortChanged');\n if (port === null || port === void 0 ? void 0 : port.reportedPosition) {\n this.getPointForPort(port).setPosition(port.getCenter());\n }\n }\n getSourcePort() {\n return this.sourcePort;\n }\n getTargetPort() {\n return this.targetPort;\n }\n setTargetPort(port) {\n if (port !== null) {\n port.addLink(this);\n }\n if (this.targetPort !== null) {\n this.targetPort.removeLink(this);\n }\n this.targetPort = port;\n this.fireEvent({ port }, 'targetPortChanged');\n if (port === null || port === void 0 ? void 0 : port.reportedPosition) {\n this.getPointForPort(port).setPosition(port.getCenter());\n }\n }\n point(x, y, index = 1) {\n return this.addPoint(this.generatePoint(x, y), index);\n }\n addLabel(label) {\n label.setParent(this);\n this.labels.push(label);\n }\n getPoints() {\n return this.points;\n }\n getLabels() {\n return this.labels;\n }\n setPoints(points) {\n _.forEach(points, (point) => {\n point.setParent(this);\n });\n this.points = points;\n }\n removePoint(pointModel) {\n if (this.isLastPoint(pointModel))\n this.remove();\n this.points.splice(this.getPointIndex(pointModel), 1);\n }\n removePointsBefore(pointModel) {\n this.points.splice(0, this.getPointIndex(pointModel));\n }\n removePointsAfter(pointModel) {\n this.points.splice(this.getPointIndex(pointModel) + 1);\n }\n removeMiddlePoints() {\n if (this.points.length > 2) {\n this.points.splice(1, this.points.length - 2);\n }\n }\n addPoint(pointModel, index = 1) {\n pointModel.setParent(this);\n this.points.splice(index, 0, pointModel);\n return pointModel;\n }\n generatePoint(x = 0, y = 0) {\n return new PointModel_1.PointModel({\n link: this,\n position: new geometry_1.Point(x, y)\n });\n }\n}\nexports.LinkModel = LinkModel;\n//# sourceMappingURL=LinkModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nconst LabelWidget_1 = require(\"../label/LabelWidget\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass LinkWidget extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n sourcePort: null,\n targetPort: null\n };\n }\n componentWillUnmount() {\n if (this.sourceListener) {\n this.sourceListener.deregister();\n }\n if (this.targetListener) {\n this.targetListener.deregister();\n }\n }\n static getDerivedStateFromProps(nextProps, prevState) {\n return {\n sourcePort: nextProps.link.getSourcePort(),\n targetPort: nextProps.link.getTargetPort()\n };\n }\n installTarget() {\n this.targetListener && this.targetListener.deregister();\n if (!this.props.link.getTargetPort())\n return;\n this.targetListener = this.props.link.getTargetPort().registerListener({\n reportInitialPosition: (event) => {\n this.forceUpdate();\n }\n });\n }\n installSource() {\n this.sourceListener && this.sourceListener.deregister();\n if (!this.props.link.getSourcePort())\n return;\n this.sourceListener = this.props.link.getSourcePort().registerListener({\n reportInitialPosition: (event) => {\n this.forceUpdate();\n }\n });\n }\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (prevState.sourcePort !== this.state.sourcePort) {\n this.installSource();\n }\n if (prevState.targetPort !== this.state.targetPort) {\n this.installTarget();\n }\n }\n static generateLinePath(firstPoint, lastPoint) {\n return `M${firstPoint.getX()},${firstPoint.getY()} L ${lastPoint.getX()},${lastPoint.getY()}`;\n }\n componentDidMount() {\n if (this.props.link.getSourcePort()) {\n this.installSource();\n }\n if (this.props.link.getTargetPort()) {\n this.installTarget();\n }\n }\n render() {\n const { link } = this.props;\n // only draw the link when we have reported positions\n if (link.getSourcePort() && !link.getSourcePort().reportedPosition) {\n return null;\n }\n if (link.getTargetPort() && !link.getTargetPort().reportedPosition) {\n return null;\n }\n //generate links\n return (React.createElement(react_canvas_core_1.PeformanceWidget, { model: this.props.link, serialized: this.props.link.serialize() }, () => {\n return (React.createElement(\"g\", { \"data-linkid\": this.props.link.getID() },\n this.props.diagramEngine.generateWidgetForLink(link),\n _.map(this.props.link.getLabels(), (labelModel, index) => {\n return (React.createElement(LabelWidget_1.LabelWidget, { key: labelModel.getID(), engine: this.props.diagramEngine, label: labelModel, index: index }));\n })));\n }));\n }\n}\nexports.LinkWidget = LinkWidget;\n//# sourceMappingURL=LinkWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PointModel = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass PointModel extends react_canvas_core_1.BasePositionModel {\n constructor(options) {\n super(Object.assign(Object.assign({}, options), { type: 'point' }));\n this.parent = options.link;\n }\n isConnectedToPort() {\n return this.parent.getPortForPoint(this) !== null;\n }\n getLink() {\n return this.getParent();\n }\n remove() {\n //clear references\n if (this.parent) {\n this.parent.removePoint(this);\n }\n super.remove();\n }\n isLocked() {\n return super.isLocked() || this.getParent().isLocked();\n }\n}\nexports.PointModel = PointModel;\n//# sourceMappingURL=PointModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLayerFactory = void 0;\nconst React = require(\"react\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst NodeLayerModel_1 = require(\"./NodeLayerModel\");\nconst NodeLayerWidget_1 = require(\"./NodeLayerWidget\");\nclass NodeLayerFactory extends react_canvas_core_1.AbstractReactFactory {\n constructor() {\n super('diagram-nodes');\n }\n generateModel(event) {\n return new NodeLayerModel_1.NodeLayerModel();\n }\n generateReactWidget(event) {\n return React.createElement(NodeLayerWidget_1.NodeLayerWidget, { layer: event.model, engine: this.engine });\n }\n}\nexports.NodeLayerFactory = NodeLayerFactory;\n//# sourceMappingURL=NodeLayerFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLayerModel = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst NodeModel_1 = require(\"../node/NodeModel\");\nclass NodeLayerModel extends react_canvas_core_1.LayerModel {\n constructor() {\n super({\n type: 'diagram-nodes',\n isSvg: false,\n transformed: true\n });\n }\n addModel(model) {\n if (!(model instanceof NodeModel_1.NodeModel)) {\n throw new Error('Can only add nodes to this layer');\n }\n model.registerListener({\n entityRemoved: () => {\n this.getParent().removeNode(model);\n }\n });\n super.addModel(model);\n }\n getChildModelFactoryBank(engine) {\n return engine.getNodeFactories();\n }\n getNodes() {\n return this.getModels();\n }\n}\nexports.NodeLayerModel = NodeLayerModel;\n//# sourceMappingURL=NodeLayerModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeLayerWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nconst _ = require(\"lodash\");\nconst NodeWidget_1 = require(\"../node/NodeWidget\");\nvar S;\n(function (S) {\n S.Container = styled_1.default.div ``;\n})(S || (S = {}));\nclass NodeLayerWidget extends React.Component {\n render() {\n return (React.createElement(React.Fragment, null, _.map(this.props.layer.getNodes(), (node) => {\n return React.createElement(NodeWidget_1.NodeWidget, { key: node.getID(), diagramEngine: this.props.engine, node: node });\n })));\n }\n}\nexports.NodeLayerWidget = NodeLayerWidget;\n//# sourceMappingURL=NodeLayerWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeModel = void 0;\nconst _ = require(\"lodash\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass NodeModel extends react_canvas_core_1.BasePositionModel {\n constructor(options) {\n super(options);\n this.ports = {};\n this.width = 0;\n this.height = 0;\n }\n getBoundingBox() {\n return new geometry_1.Rectangle(this.getPosition(), this.width, this.height);\n }\n setPosition(x, y) {\n const old = this.position;\n if (x instanceof geometry_1.Point) {\n super.setPosition(x);\n }\n else {\n super.setPosition(x, y);\n }\n //also update the port co-ordinates (for make glorious speed)\n _.forEach(this.ports, (port) => {\n port.setPosition(port.getX() + this.position.x - old.x, port.getY() + this.position.y - old.y);\n });\n }\n deserialize(event) {\n super.deserialize(event);\n //deserialize ports\n _.forEach(event.data.ports, (port) => {\n let portOb = event.engine.getFactoryForPort(port.type).generateModel({});\n portOb.deserialize(Object.assign(Object.assign({}, event), { data: port }));\n // the links need these\n event.registerModel(portOb);\n this.addPort(portOb);\n });\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { ports: _.map(this.ports, (port) => {\n return port.serialize();\n }) });\n }\n doClone(lookupTable = {}, clone) {\n // also clone the ports\n clone.ports = {};\n _.forEach(this.ports, (port) => {\n clone.addPort(port.clone(lookupTable));\n });\n }\n remove() {\n super.remove();\n _.forEach(this.ports, (port) => {\n _.forEach(port.getLinks(), (link) => {\n link.remove();\n });\n });\n }\n getPortFromID(id) {\n for (var i in this.ports) {\n if (this.ports[i].getID() === id) {\n return this.ports[i];\n }\n }\n return null;\n }\n getLink(id) {\n for (let portID in this.ports) {\n const links = this.ports[portID].getLinks();\n if (links[id]) {\n return links[id];\n }\n }\n }\n getPort(name) {\n return this.ports[name];\n }\n getPorts() {\n return this.ports;\n }\n removePort(port) {\n // clear the port from the links\n for (let link of _.values(port.getLinks())) {\n link.clearPort(port);\n }\n //clear the parent node reference\n if (this.ports[port.getName()]) {\n this.ports[port.getName()].setParent(null);\n delete this.ports[port.getName()];\n }\n }\n addPort(port) {\n port.setParent(this);\n this.ports[port.getName()] = port;\n return port;\n }\n updateDimensions({ width, height }) {\n this.width = width;\n this.height = height;\n }\n}\nexports.NodeModel = NodeModel;\n//# sourceMappingURL=NodeModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst styled_1 = require(\"@emotion/styled\");\nconst resize_observer_polyfill_1 = require(\"resize-observer-polyfill\");\nvar S;\n(function (S) {\n S.Node = styled_1.default.div `\n\t\tposition: absolute;\n\t\t-webkit-touch-callout: none; /* iOS Safari */\n\t\t-webkit-user-select: none; /* Chrome/Safari/Opera */\n\t\tuser-select: none;\n\t\tcursor: move;\n\t\tpointer-events: all;\n\t`;\n})(S || (S = {}));\nclass NodeWidget extends React.Component {\n constructor(props) {\n super(props);\n this.ref = React.createRef();\n }\n componentWillUnmount() {\n var _a;\n this.ob.disconnect();\n this.ob = null;\n (_a = this.listener) === null || _a === void 0 ? void 0 : _a.deregister();\n this.listener = null;\n }\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.listener && this.props.node !== prevProps.node) {\n this.listener.deregister();\n this.installSelectionListener();\n }\n }\n installSelectionListener() {\n this.listener = this.props.node.registerListener({\n selectionChanged: (event) => {\n this.forceUpdate();\n }\n });\n }\n updateSize(width, height) {\n this.props.node.updateDimensions({ width, height });\n //now mark the links as dirty\n try {\n _.forEach(this.props.node.getPorts(), (port) => {\n port.updateCoords(this.props.diagramEngine.getPortCoords(port));\n });\n }\n catch (ex) { }\n }\n componentDidMount() {\n // @ts-ignore\n this.ob = new resize_observer_polyfill_1.default((entities) => {\n const bounds = entities[0].contentRect;\n this.updateSize(bounds.width, bounds.height);\n });\n const b = this.ref.current.getBoundingClientRect();\n this.updateSize(b.width, b.height);\n this.ob.observe(this.ref.current);\n this.installSelectionListener();\n }\n render() {\n return (React.createElement(react_canvas_core_1.PeformanceWidget, { model: this.props.node, serialized: this.props.node.serialize() }, () => {\n return (React.createElement(S.Node, { className: \"node\", ref: this.ref, \"data-nodeid\": this.props.node.getID(), style: {\n top: this.props.node.getY(),\n left: this.props.node.getX()\n } }, this.props.diagramEngine.generateWidgetForNode(this.props.node)));\n }));\n }\n}\nexports.NodeWidget = NodeWidget;\n//# sourceMappingURL=NodeWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PortModel = exports.PortModelAlignment = void 0;\nconst _ = require(\"lodash\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nvar PortModelAlignment;\n(function (PortModelAlignment) {\n PortModelAlignment[\"TOP\"] = \"top\";\n PortModelAlignment[\"LEFT\"] = \"left\";\n PortModelAlignment[\"BOTTOM\"] = \"bottom\";\n PortModelAlignment[\"RIGHT\"] = \"right\";\n})(PortModelAlignment = exports.PortModelAlignment || (exports.PortModelAlignment = {}));\nclass PortModel extends react_canvas_core_1.BasePositionModel {\n constructor(options) {\n super(options);\n this.links = {};\n this.reportedPosition = false;\n }\n deserialize(event) {\n super.deserialize(event);\n this.reportedPosition = false;\n this.options.name = event.data.name;\n this.options.alignment = event.data.alignment;\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { name: this.options.name, alignment: this.options.alignment, parentNode: this.parent.getID(), links: _.map(this.links, (link) => {\n return link.getID();\n }) });\n }\n setPosition(x, y) {\n let old = this.position;\n super.setPosition(x, y);\n _.forEach(this.getLinks(), (link) => {\n let point = link.getPointForPort(this);\n point.setPosition(point.getX() + x - old.x, point.getY() + y - old.y);\n });\n }\n doClone(lookupTable = {}, clone) {\n clone.links = {};\n clone.parent = this.getParent().clone(lookupTable);\n }\n getNode() {\n return this.getParent();\n }\n getName() {\n return this.options.name;\n }\n getMaximumLinks() {\n return this.options.maximumLinks;\n }\n setMaximumLinks(maximumLinks) {\n this.options.maximumLinks = maximumLinks;\n }\n removeLink(link) {\n delete this.links[link.getID()];\n }\n addLink(link) {\n this.links[link.getID()] = link;\n }\n getLinks() {\n return this.links;\n }\n createLinkModel() {\n if (_.isFinite(this.options.maximumLinks)) {\n var numberOfLinks = _.size(this.links);\n if (this.options.maximumLinks === 1 && numberOfLinks >= 1) {\n return _.values(this.links)[0];\n }\n else if (numberOfLinks >= this.options.maximumLinks) {\n return null;\n }\n }\n return null;\n }\n reportPosition() {\n _.forEach(this.getLinks(), (link) => {\n link.getPointForPort(this).setPosition(this.getCenter());\n });\n this.fireEvent({\n entity: this\n }, 'reportInitialPosition');\n }\n getCenter() {\n return new geometry_1.Point(this.getX() + this.width / 2, this.getY() + this.height / 2);\n }\n getBoundingBox() {\n return new geometry_1.Rectangle(this.position, this.width, this.height);\n }\n updateCoords(coords) {\n this.width = coords.getWidth();\n this.height = coords.getHeight();\n this.setPosition(coords.getTopLeft());\n this.reportedPosition = true;\n this.reportPosition();\n }\n canLinkToPort(port) {\n return true;\n }\n isLocked() {\n return super.isLocked() || this.getParent().isLocked();\n }\n}\nexports.PortModel = PortModel;\n//# sourceMappingURL=PortModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PortWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass PortWidget extends React.Component {\n constructor(props) {\n super(props);\n this.ref = React.createRef();\n }\n report() {\n this.props.port.updateCoords(this.props.engine.getPortCoords(this.props.port, this.ref.current));\n }\n componentWillUnmount() {\n this.engineListenerHandle && this.engineListenerHandle.deregister();\n }\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (!this.props.port.reportedPosition) {\n this.report();\n }\n }\n componentDidMount() {\n this.engineListenerHandle = this.props.engine.registerListener({\n canvasReady: () => {\n this.report();\n }\n });\n if (this.props.engine.getCanvas()) {\n this.report();\n }\n }\n getExtraProps() {\n if (react_canvas_core_1.Toolkit.TESTING) {\n const links = _.keys(this.props.port.getNode().getPort(this.props.port.getName()).links).join(',');\n return {\n 'data-links': links\n };\n }\n return {};\n }\n render() {\n return (React.createElement(\"div\", Object.assign({ style: this.props.style, ref: this.ref, className: `port ${this.props.className || ''}`, \"data-name\": this.props.port.getName(), \"data-nodeid\": this.props.port.getNode().getID() }, this.getExtraProps()), this.props.children));\n }\n}\nexports.PortWidget = PortWidget;\n//# sourceMappingURL=PortWidget.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./models/DiagramModel\"), exports);\n__exportStar(require(\"./entities/label/LabelModel\"), exports);\n__exportStar(require(\"./entities/link/LinkModel\"), exports);\n__exportStar(require(\"./entities/link/PointModel\"), exports);\n__exportStar(require(\"./entities/link/LinkWidget\"), exports);\n__exportStar(require(\"./entities/link-layer/LinkLayerModel\"), exports);\n__exportStar(require(\"./entities/link-layer/LinkLayerWidget\"), exports);\n__exportStar(require(\"./entities/link-layer/LinkLayerFactory\"), exports);\n__exportStar(require(\"./entities/node-layer/NodeLayerModel\"), exports);\n__exportStar(require(\"./entities/node-layer/NodeLayerWidget\"), exports);\n__exportStar(require(\"./entities/node-layer/NodeLayerFactory\"), exports);\n__exportStar(require(\"./entities/node/NodeModel\"), exports);\n__exportStar(require(\"./entities/node/NodeWidget\"), exports);\n__exportStar(require(\"./entities/port/PortModel\"), exports);\n__exportStar(require(\"./entities/port/PortWidget\"), exports);\n__exportStar(require(\"./states/DefaultDiagramState\"), exports);\n__exportStar(require(\"./states/DragDiagramItemsState\"), exports);\n__exportStar(require(\"./states/DragNewLinkState\"), exports);\n__exportStar(require(\"./DiagramEngine\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiagramModel = void 0;\nconst _ = require(\"lodash\");\nconst LinkModel_1 = require(\"../entities/link/LinkModel\");\nconst NodeModel_1 = require(\"../entities/node/NodeModel\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst NodeLayerModel_1 = require(\"../entities/node-layer/NodeLayerModel\");\nconst LinkLayerModel_1 = require(\"../entities/link-layer/LinkLayerModel\");\nclass DiagramModel extends react_canvas_core_1.CanvasModel {\n constructor(options = {}) {\n super(options);\n this.addLayer(new LinkLayerModel_1.LinkLayerModel());\n this.addLayer(new NodeLayerModel_1.NodeLayerModel());\n }\n deserialize(event) {\n this.layers = [];\n super.deserialize(event);\n }\n addLayer(layer) {\n super.addLayer(layer);\n if (layer instanceof NodeLayerModel_1.NodeLayerModel) {\n this.activeNodeLayer = layer;\n }\n if (layer instanceof LinkLayerModel_1.LinkLayerModel) {\n this.activeLinkLayer = layer;\n }\n }\n getLinkLayers() {\n return _.filter(this.layers, (layer) => {\n return layer instanceof LinkLayerModel_1.LinkLayerModel;\n });\n }\n getNodeLayers() {\n return _.filter(this.layers, (layer) => {\n return layer instanceof NodeLayerModel_1.NodeLayerModel;\n });\n }\n getActiveNodeLayer() {\n if (!this.activeNodeLayer) {\n const layers = this.getNodeLayers();\n if (layers.length === 0) {\n this.addLayer(new NodeLayerModel_1.NodeLayerModel());\n }\n else {\n this.activeNodeLayer = layers[0];\n }\n }\n return this.activeNodeLayer;\n }\n getActiveLinkLayer() {\n if (!this.activeLinkLayer) {\n const layers = this.getLinkLayers();\n if (layers.length === 0) {\n this.addLayer(new LinkLayerModel_1.LinkLayerModel());\n }\n else {\n this.activeLinkLayer = layers[0];\n }\n }\n return this.activeLinkLayer;\n }\n getNode(node) {\n for (const layer of this.getNodeLayers()) {\n const model = layer.getModel(node);\n if (model) {\n return model;\n }\n }\n }\n getLink(link) {\n for (const layer of this.getLinkLayers()) {\n const model = layer.getModel(link);\n if (model) {\n return model;\n }\n }\n }\n addAll(...models) {\n _.forEach(models, (model) => {\n if (model instanceof LinkModel_1.LinkModel) {\n this.addLink(model);\n }\n else if (model instanceof NodeModel_1.NodeModel) {\n this.addNode(model);\n }\n });\n return models;\n }\n addLink(link) {\n this.getActiveLinkLayer().addModel(link);\n this.fireEvent({\n link,\n isCreated: true\n }, 'linksUpdated');\n return link;\n }\n addNode(node) {\n this.getActiveNodeLayer().addModel(node);\n this.fireEvent({ node, isCreated: true }, 'nodesUpdated');\n return node;\n }\n removeLink(link) {\n const removed = _.some(this.getLinkLayers(), (layer) => {\n return layer.removeModel(link);\n });\n if (removed) {\n this.fireEvent({ link, isCreated: false }, 'linksUpdated');\n }\n }\n removeNode(node) {\n const removed = _.some(this.getNodeLayers(), (layer) => {\n return layer.removeModel(node);\n });\n if (removed) {\n this.fireEvent({ node, isCreated: false }, 'nodesUpdated');\n }\n }\n getLinks() {\n return _.flatMap(this.getLinkLayers(), (layer) => {\n return _.values(layer.getModels());\n });\n }\n getNodes() {\n return _.flatMap(this.getNodeLayers(), (layer) => {\n return _.values(layer.getModels());\n });\n }\n}\nexports.DiagramModel = DiagramModel;\n//# sourceMappingURL=DiagramModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultDiagramState = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst PortModel_1 = require(\"../entities/port/PortModel\");\nconst DragNewLinkState_1 = require(\"./DragNewLinkState\");\nconst DragDiagramItemsState_1 = require(\"./DragDiagramItemsState\");\nclass DefaultDiagramState extends react_canvas_core_1.State {\n constructor() {\n super({\n name: 'default-diagrams'\n });\n this.childStates = [new react_canvas_core_1.SelectingState()];\n this.dragCanvas = new react_canvas_core_1.DragCanvasState();\n this.dragNewLink = new DragNewLinkState_1.DragNewLinkState();\n this.dragItems = new DragDiagramItemsState_1.DragDiagramItemsState();\n // determine what was clicked on\n this.registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.MOUSE_DOWN,\n fire: (event) => {\n const element = this.engine.getActionEventBus().getModelForEvent(event);\n // the canvas was clicked on, transition to the dragging canvas state\n if (!element) {\n this.transitionWithEvent(this.dragCanvas, event);\n }\n // initiate dragging a new link\n else if (element instanceof PortModel_1.PortModel) {\n this.transitionWithEvent(this.dragNewLink, event);\n }\n // move the items (and potentially link points)\n else {\n this.transitionWithEvent(this.dragItems, event);\n }\n }\n }));\n // touch drags the canvas\n this.registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.TOUCH_START,\n fire: (event) => {\n this.transitionWithEvent(this.dragCanvas, event);\n }\n }));\n }\n}\nexports.DefaultDiagramState = DefaultDiagramState;\n//# sourceMappingURL=DefaultDiagramState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DragDiagramItemsState = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst _ = require(\"lodash\");\nconst PointModel_1 = require(\"../entities/link/PointModel\");\nconst PortModel_1 = require(\"../entities/port/PortModel\");\nclass DragDiagramItemsState extends react_canvas_core_1.MoveItemsState {\n constructor() {\n super();\n this.registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.MOUSE_UP,\n fire: (event) => {\n const item = this.engine.getMouseElement(event.event);\n if (item instanceof PortModel_1.PortModel) {\n _.forEach(this.initialPositions, (position) => {\n if (position.item instanceof PointModel_1.PointModel) {\n const link = position.item.getParent();\n // only care about the last links\n if (link.getLastPoint() !== position.item) {\n return;\n }\n if (link.getSourcePort().canLinkToPort(item)) {\n link.setTargetPort(item);\n item.reportPosition();\n this.engine.repaintCanvas();\n }\n }\n });\n }\n }\n }));\n }\n}\nexports.DragDiagramItemsState = DragDiagramItemsState;\n//# sourceMappingURL=DragDiagramItemsState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DragNewLinkState = void 0;\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst PortModel_1 = require(\"../entities/port/PortModel\");\nclass DragNewLinkState extends react_canvas_core_1.AbstractDisplacementState {\n constructor(options = {}) {\n super({ name: 'drag-new-link' });\n this.config = Object.assign({ allowLooseLinks: true, allowLinksFromLockedPorts: false }, options);\n this.registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.MOUSE_DOWN,\n fire: (event) => {\n this.port = this.engine.getMouseElement(event.event);\n if (!this.config.allowLinksFromLockedPorts && this.port.isLocked()) {\n this.eject();\n return;\n }\n this.link = this.port.createLinkModel();\n // if no link is given, just eject the state\n if (!this.link) {\n this.eject();\n return;\n }\n this.link.setSelected(true);\n this.link.setSourcePort(this.port);\n this.engine.getModel().addLink(this.link);\n this.port.reportPosition();\n }\n }));\n this.registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.MOUSE_UP,\n fire: (event) => {\n const model = this.engine.getMouseElement(event.event);\n // check to see if we connected to a new port\n if (model instanceof PortModel_1.PortModel) {\n if (this.port.canLinkToPort(model)) {\n this.link.setTargetPort(model);\n model.reportPosition();\n this.engine.repaintCanvas();\n return;\n }\n else {\n this.link.remove();\n this.engine.repaintCanvas();\n return;\n }\n }\n if (!this.config.allowLooseLinks) {\n this.link.remove();\n this.engine.repaintCanvas();\n }\n }\n }));\n }\n /**\n * Calculates the link's far-end point position on mouse move.\n * In order to be as precise as possible the mouse initialXRelative & initialYRelative are taken into account as well\n * as the possible engine offset\n */\n fireMouseMoved(event) {\n const portPos = this.port.getPosition();\n const zoomLevelPercentage = this.engine.getModel().getZoomLevel() / 100;\n const engineOffsetX = this.engine.getModel().getOffsetX() / zoomLevelPercentage;\n const engineOffsetY = this.engine.getModel().getOffsetY() / zoomLevelPercentage;\n const initialXRelative = this.initialXRelative / zoomLevelPercentage;\n const initialYRelative = this.initialYRelative / zoomLevelPercentage;\n const linkNextX = portPos.x - engineOffsetX + (initialXRelative - portPos.x) + event.virtualDisplacementX;\n const linkNextY = portPos.y - engineOffsetY + (initialYRelative - portPos.y) + event.virtualDisplacementY;\n this.link.getLastPoint().setPosition(linkNextX, linkNextY);\n this.engine.repaintCanvas();\n }\n}\nexports.DragNewLinkState = DragNewLinkState;\n//# sourceMappingURL=DragNewLinkState.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./label/DefaultLabelFactory\"), exports);\n__exportStar(require(\"./label/DefaultLabelModel\"), exports);\n__exportStar(require(\"./label/DefaultLabelWidget\"), exports);\n__exportStar(require(\"./link/DefaultLinkFactory\"), exports);\n__exportStar(require(\"./link/DefaultLinkModel\"), exports);\n__exportStar(require(\"./link/DefaultLinkWidget\"), exports);\n__exportStar(require(\"./link/DefaultLinkSegmentWidget\"), exports);\n__exportStar(require(\"./link/DefaultLinkPointWidget\"), exports);\n__exportStar(require(\"./node/DefaultNodeFactory\"), exports);\n__exportStar(require(\"./node/DefaultNodeModel\"), exports);\n__exportStar(require(\"./node/DefaultNodeWidget\"), exports);\n__exportStar(require(\"./port/DefaultPortFactory\"), exports);\n__exportStar(require(\"./port/DefaultPortLabelWidget\"), exports);\n__exportStar(require(\"./port/DefaultPortModel\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLabelFactory = void 0;\nconst React = require(\"react\");\nconst DefaultLabelModel_1 = require(\"./DefaultLabelModel\");\nconst DefaultLabelWidget_1 = require(\"./DefaultLabelWidget\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\n/**\n * @author Dylan Vorster\n */\nclass DefaultLabelFactory extends react_canvas_core_1.AbstractReactFactory {\n constructor() {\n super('default');\n }\n generateReactWidget(event) {\n return React.createElement(DefaultLabelWidget_1.DefaultLabelWidget, { model: event.model });\n }\n generateModel(event) {\n return new DefaultLabelModel_1.DefaultLabelModel();\n }\n}\nexports.DefaultLabelFactory = DefaultLabelFactory;\n//# sourceMappingURL=DefaultLabelFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLabelModel = void 0;\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nclass DefaultLabelModel extends react_diagrams_core_1.LabelModel {\n constructor(options = {}) {\n super(Object.assign({ offsetY: options.offsetY == null ? -23 : options.offsetY, type: 'default' }, options));\n }\n setLabel(label) {\n this.options.label = label;\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.label = event.data.label;\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { label: this.options.label });\n }\n}\nexports.DefaultLabelModel = DefaultLabelModel;\n//# sourceMappingURL=DefaultLabelModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLabelWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.Label = styled_1.default.div `\n\t\tbackground: rgba(0, 0, 0, 0.8);\n\t\tborder-radius: 5px;\n\t\tcolor: white;\n\t\tfont-size: 12px;\n\t\tpadding: 4px 8px;\n\t\tfont-family: sans-serif;\n\t\tuser-select: none;\n\t`;\n})(S || (S = {}));\nclass DefaultLabelWidget extends React.Component {\n render() {\n return React.createElement(S.Label, null, this.props.model.getOptions().label);\n }\n}\nexports.DefaultLabelWidget = DefaultLabelWidget;\n//# sourceMappingURL=DefaultLabelWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLinkFactory = void 0;\nconst React = require(\"react\");\nconst DefaultLinkModel_1 = require(\"./DefaultLinkModel\");\nconst DefaultLinkWidget_1 = require(\"./DefaultLinkWidget\");\nconst styled_1 = require(\"@emotion/styled\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst react_1 = require(\"@emotion/react\");\nvar S;\n(function (S) {\n S.Keyframes = react_1.keyframes `\n\t\tfrom {\n\t\t\tstroke-dashoffset: 24;\n\t\t}\n\t\tto {\n\t\t\tstroke-dashoffset: 0;\n\t\t}\n\t`;\n const selected = react_1.css `\n\t\tstroke-dasharray: 10, 2;\n\t\tanimation: ${S.Keyframes} 1s linear infinite;\n\t`;\n S.Path = styled_1.default.path `\n\t\t${(p) => p.selected && selected};\n\t\tfill: none;\n\t\tpointer-events: auto;\n\t`;\n})(S || (S = {}));\nclass DefaultLinkFactory extends react_canvas_core_1.AbstractReactFactory {\n constructor(type = 'default') {\n super(type);\n }\n generateReactWidget(event) {\n return React.createElement(DefaultLinkWidget_1.DefaultLinkWidget, { link: event.model, diagramEngine: this.engine });\n }\n generateModel(event) {\n return new DefaultLinkModel_1.DefaultLinkModel();\n }\n generateLinkSegment(model, selected, path) {\n return (React.createElement(S.Path, { selected: selected, stroke: selected ? model.getOptions().selectedColor : model.getOptions().color, strokeWidth: model.getOptions().width, d: path }));\n }\n}\nexports.DefaultLinkFactory = DefaultLinkFactory;\n//# sourceMappingURL=DefaultLinkFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLinkModel = void 0;\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst DefaultLabelModel_1 = require(\"../label/DefaultLabelModel\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nclass DefaultLinkModel extends react_diagrams_core_1.LinkModel {\n constructor(options = {}) {\n super(Object.assign({ type: 'default', width: options.width || 3, color: options.color || 'gray', selectedColor: options.selectedColor || 'rgb(0,192,255)', curvyness: 50 }, options));\n }\n calculateControlOffset(port) {\n if (port.getOptions().alignment === react_diagrams_core_1.PortModelAlignment.RIGHT) {\n return [this.options.curvyness, 0];\n }\n else if (port.getOptions().alignment === react_diagrams_core_1.PortModelAlignment.LEFT) {\n return [-this.options.curvyness, 0];\n }\n else if (port.getOptions().alignment === react_diagrams_core_1.PortModelAlignment.TOP) {\n return [0, -this.options.curvyness];\n }\n return [0, this.options.curvyness];\n }\n getSVGPath() {\n if (this.points.length == 2) {\n const curve = new geometry_1.BezierCurve();\n curve.setSource(this.getFirstPoint().getPosition());\n curve.setTarget(this.getLastPoint().getPosition());\n curve.setSourceControl(this.getFirstPoint().getPosition().clone());\n curve.setTargetControl(this.getLastPoint().getPosition().clone());\n if (this.sourcePort) {\n curve.getSourceControl().translate(...this.calculateControlOffset(this.getSourcePort()));\n }\n if (this.targetPort) {\n curve.getTargetControl().translate(...this.calculateControlOffset(this.getTargetPort()));\n }\n return curve.getSVGCurve();\n }\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { width: this.options.width, color: this.options.color, curvyness: this.options.curvyness, selectedColor: this.options.selectedColor });\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.color = event.data.color;\n this.options.width = event.data.width;\n this.options.curvyness = event.data.curvyness;\n this.options.selectedColor = event.data.selectedColor;\n }\n addLabel(label) {\n if (label instanceof react_diagrams_core_1.LabelModel) {\n return super.addLabel(label);\n }\n let labelOb = new DefaultLabelModel_1.DefaultLabelModel();\n labelOb.setLabel(label);\n return super.addLabel(labelOb);\n }\n setWidth(width) {\n this.options.width = width;\n this.fireEvent({ width }, 'widthChanged');\n }\n setColor(color) {\n this.options.color = color;\n this.fireEvent({ color }, 'colorChanged');\n }\n}\nexports.DefaultLinkModel = DefaultLinkModel;\n//# sourceMappingURL=DefaultLinkModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLinkPointWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.PointTop = styled_1.default.circle `\n\t\tpointer-events: all;\n\t`;\n})(S || (S = {}));\nclass DefaultLinkPointWidget extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n selected: false\n };\n }\n render() {\n const { point } = this.props;\n return (React.createElement(\"g\", null,\n React.createElement(\"circle\", { cx: point.getPosition().x, cy: point.getPosition().y, r: 5, fill: this.state.selected || this.props.point.isSelected() ? this.props.colorSelected : this.props.color }),\n React.createElement(S.PointTop, { className: \"point\", onMouseLeave: () => {\n this.setState({ selected: false });\n }, onMouseEnter: () => {\n this.setState({ selected: true });\n }, \"data-id\": point.getID(), \"data-linkid\": point.getLink().getID(), cx: point.getPosition().x, cy: point.getPosition().y, r: 15, opacity: 0.0 })));\n }\n}\nexports.DefaultLinkPointWidget = DefaultLinkPointWidget;\n//# sourceMappingURL=DefaultLinkPointWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLinkSegmentWidget = void 0;\nconst React = require(\"react\");\nclass DefaultLinkSegmentWidget extends React.Component {\n render() {\n const Bottom = React.cloneElement(this.props.factory.generateLinkSegment(this.props.link, this.props.selected || this.props.link.isSelected(), this.props.path), {\n ref: this.props.forwardRef\n });\n const Top = React.cloneElement(Bottom, Object.assign(Object.assign({ strokeLinecap: 'round', onMouseLeave: () => {\n this.props.onSelection(false);\n }, onMouseEnter: () => {\n this.props.onSelection(true);\n } }, this.props.extras), { ref: null, 'data-linkid': this.props.link.getID(), strokeOpacity: this.props.selected ? 0.1 : 0, strokeWidth: 20, fill: 'none', onContextMenu: () => {\n if (!this.props.link.isLocked()) {\n event.preventDefault();\n this.props.link.remove();\n }\n } }));\n return (React.createElement(\"g\", null,\n Bottom,\n Top));\n }\n}\nexports.DefaultLinkSegmentWidget = DefaultLinkSegmentWidget;\n//# sourceMappingURL=DefaultLinkSegmentWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLinkWidget = void 0;\nconst React = require(\"react\");\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst DefaultLinkPointWidget_1 = require(\"./DefaultLinkPointWidget\");\nconst DefaultLinkSegmentWidget_1 = require(\"./DefaultLinkSegmentWidget\");\nclass DefaultLinkWidget extends React.Component {\n constructor(props) {\n super(props);\n this.refPaths = [];\n this.state = {\n selected: false\n };\n }\n renderPoints() {\n var _a;\n return (_a = this.props.renderPoints) !== null && _a !== void 0 ? _a : true;\n }\n componentDidUpdate() {\n this.props.link.setRenderedPaths(this.refPaths.map((ref) => {\n return ref.current;\n }));\n }\n componentDidMount() {\n this.props.link.setRenderedPaths(this.refPaths.map((ref) => {\n return ref.current;\n }));\n }\n componentWillUnmount() {\n this.props.link.setRenderedPaths([]);\n }\n addPointToLink(event, index) {\n if (!event.shiftKey &&\n !this.props.link.isLocked() &&\n this.props.link.getPoints().length - 1 <= this.props.diagramEngine.getMaxNumberPointsPerLink()) {\n const point = new react_diagrams_core_1.PointModel({\n link: this.props.link,\n position: this.props.diagramEngine.getRelativeMousePoint(event)\n });\n this.props.link.addPoint(point, index);\n event.persist();\n event.stopPropagation();\n this.forceUpdate(() => {\n this.props.diagramEngine.getActionEventBus().fireAction({\n event,\n model: point\n });\n });\n }\n }\n generatePoint(point) {\n return (React.createElement(DefaultLinkPointWidget_1.DefaultLinkPointWidget, { key: point.getID(), point: point, colorSelected: this.props.link.getOptions().selectedColor, color: this.props.link.getOptions().color }));\n }\n generateLink(path, extraProps, id) {\n const ref = React.createRef();\n this.refPaths.push(ref);\n return (React.createElement(DefaultLinkSegmentWidget_1.DefaultLinkSegmentWidget, { key: `link-${id}`, path: path, selected: this.state.selected, diagramEngine: this.props.diagramEngine, factory: this.props.diagramEngine.getFactoryForLink(this.props.link), link: this.props.link, forwardRef: ref, onSelection: (selected) => {\n this.setState({ selected: selected });\n }, extras: extraProps }));\n }\n render() {\n //ensure id is present for all points on the path\n var points = this.props.link.getPoints();\n var paths = [];\n this.refPaths = [];\n if (points.length === 2) {\n paths.push(this.generateLink(this.props.link.getSVGPath(), {\n onMouseDown: (event) => {\n var _a, _b;\n (_b = (_a = this.props).selected) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n this.addPointToLink(event, 1);\n }\n }, '0'));\n // draw the link as dangeling\n if (this.props.link.getTargetPort() == null) {\n paths.push(this.generatePoint(points[1]));\n }\n }\n else {\n //draw the multiple anchors and complex line instead\n for (let j = 0; j < points.length - 1; j++) {\n paths.push(this.generateLink(react_diagrams_core_1.LinkWidget.generateLinePath(points[j], points[j + 1]), {\n 'data-linkid': this.props.link.getID(),\n 'data-point': j,\n onMouseDown: (event) => {\n var _a, _b;\n (_b = (_a = this.props).selected) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n this.addPointToLink(event, j + 1);\n }\n }, j));\n }\n if (this.renderPoints()) {\n //render the circles\n for (let i = 1; i < points.length - 1; i++) {\n paths.push(this.generatePoint(points[i]));\n }\n if (this.props.link.getTargetPort() == null) {\n paths.push(this.generatePoint(points[points.length - 1]));\n }\n }\n }\n return React.createElement(\"g\", { \"data-default-link-test\": this.props.link.getOptions().testName }, paths);\n }\n}\nexports.DefaultLinkWidget = DefaultLinkWidget;\n//# sourceMappingURL=DefaultLinkWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultNodeFactory = void 0;\nconst React = require(\"react\");\nconst DefaultNodeModel_1 = require(\"./DefaultNodeModel\");\nconst DefaultNodeWidget_1 = require(\"./DefaultNodeWidget\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass DefaultNodeFactory extends react_canvas_core_1.AbstractReactFactory {\n constructor() {\n super('default');\n }\n generateReactWidget(event) {\n return React.createElement(DefaultNodeWidget_1.DefaultNodeWidget, { engine: this.engine, node: event.model });\n }\n generateModel(event) {\n return new DefaultNodeModel_1.DefaultNodeModel();\n }\n}\nexports.DefaultNodeFactory = DefaultNodeFactory;\n//# sourceMappingURL=DefaultNodeFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultNodeModel = void 0;\nconst _ = require(\"lodash\");\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst DefaultPortModel_1 = require(\"../port/DefaultPortModel\");\nclass DefaultNodeModel extends react_diagrams_core_1.NodeModel {\n constructor(options = {}, color) {\n if (typeof options === 'string') {\n options = {\n name: options,\n color: color\n };\n }\n super(Object.assign({ type: 'default', name: 'Untitled', color: 'rgb(0,192,255)' }, options));\n this.portsOut = [];\n this.portsIn = [];\n }\n doClone(lookupTable, clone) {\n clone.portsIn = [];\n clone.portsOut = [];\n super.doClone(lookupTable, clone);\n }\n removePort(port) {\n super.removePort(port);\n if (port.getOptions().in) {\n this.portsIn.splice(this.portsIn.indexOf(port), 1);\n }\n else {\n this.portsOut.splice(this.portsOut.indexOf(port), 1);\n }\n }\n addPort(port) {\n super.addPort(port);\n if (port.getOptions().in) {\n if (this.portsIn.indexOf(port) === -1) {\n this.portsIn.push(port);\n }\n }\n else {\n if (this.portsOut.indexOf(port) === -1) {\n this.portsOut.push(port);\n }\n }\n return port;\n }\n addInPort(label, after = true) {\n const p = new DefaultPortModel_1.DefaultPortModel({\n in: true,\n name: label,\n label: label,\n alignment: react_diagrams_core_1.PortModelAlignment.LEFT\n });\n if (!after) {\n this.portsIn.splice(0, 0, p);\n }\n return this.addPort(p);\n }\n addOutPort(label, after = true) {\n const p = new DefaultPortModel_1.DefaultPortModel({\n in: false,\n name: label,\n label: label,\n alignment: react_diagrams_core_1.PortModelAlignment.RIGHT\n });\n if (!after) {\n this.portsOut.splice(0, 0, p);\n }\n return this.addPort(p);\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.name = event.data.name;\n this.options.color = event.data.color;\n this.portsIn = _.map(event.data.portsInOrder, (id) => {\n return this.getPortFromID(id);\n });\n this.portsOut = _.map(event.data.portsOutOrder, (id) => {\n return this.getPortFromID(id);\n });\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { name: this.options.name, color: this.options.color, portsInOrder: _.map(this.portsIn, (port) => {\n return port.getID();\n }), portsOutOrder: _.map(this.portsOut, (port) => {\n return port.getID();\n }) });\n }\n getInPorts() {\n return this.portsIn;\n }\n getOutPorts() {\n return this.portsOut;\n }\n}\nexports.DefaultNodeModel = DefaultNodeModel;\n//# sourceMappingURL=DefaultNodeModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultNodeWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nconst DefaultPortLabelWidget_1 = require(\"../port/DefaultPortLabelWidget\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.Node = styled_1.default.div `\n\t\tbackground-color: ${(p) => p.background};\n\t\tborder-radius: 5px;\n\t\tfont-family: sans-serif;\n\t\tcolor: white;\n\t\tborder: solid 2px black;\n\t\toverflow: visible;\n\t\tfont-size: 11px;\n\t\tborder: solid 2px ${(p) => (p.selected ? 'rgb(0,192,255)' : 'black')};\n\t`;\n S.Title = styled_1.default.div `\n\t\tbackground: rgba(0, 0, 0, 0.3);\n\t\tdisplay: flex;\n\t\twhite-space: nowrap;\n\t\tjustify-items: center;\n\t`;\n S.TitleName = styled_1.default.div `\n\t\tflex-grow: 1;\n\t\tpadding: 5px 5px;\n\t`;\n S.Ports = styled_1.default.div `\n\t\tdisplay: flex;\n\t\tbackground-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.2));\n\t`;\n S.PortsContainer = styled_1.default.div `\n\t\tflex-grow: 1;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\t&:first-of-type {\n\t\t\tmargin-right: 10px;\n\t\t}\n\n\t\t&:only-child {\n\t\t\tmargin-right: 0px;\n\t\t}\n\t`;\n})(S || (S = {}));\n/**\n * Default node that models the DefaultNodeModel. It creates two columns\n * for both all the input ports on the left, and the output ports on the right.\n */\nclass DefaultNodeWidget extends React.Component {\n constructor() {\n super(...arguments);\n this.generatePort = (port) => {\n return React.createElement(DefaultPortLabelWidget_1.DefaultPortLabel, { engine: this.props.engine, port: port, key: port.getID() });\n };\n }\n render() {\n return (React.createElement(S.Node, { \"data-default-node-name\": this.props.node.getOptions().name, selected: this.props.node.isSelected(), background: this.props.node.getOptions().color },\n React.createElement(S.Title, null,\n React.createElement(S.TitleName, null, this.props.node.getOptions().name)),\n React.createElement(S.Ports, null,\n React.createElement(S.PortsContainer, null, _.map(this.props.node.getInPorts(), this.generatePort)),\n React.createElement(S.PortsContainer, null, _.map(this.props.node.getOutPorts(), this.generatePort)))));\n }\n}\nexports.DefaultNodeWidget = DefaultNodeWidget;\n//# sourceMappingURL=DefaultNodeWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultPortFactory = void 0;\nconst DefaultPortModel_1 = require(\"./DefaultPortModel\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass DefaultPortFactory extends react_canvas_core_1.AbstractModelFactory {\n constructor() {\n super('default');\n }\n generateModel() {\n return new DefaultPortModel_1.DefaultPortModel({\n name: 'unknown'\n });\n }\n}\nexports.DefaultPortFactory = DefaultPortFactory;\n//# sourceMappingURL=DefaultPortFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultPortLabel = void 0;\nconst React = require(\"react\");\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.PortLabel = styled_1.default.div `\n\t\tdisplay: flex;\n\t\tmargin-top: 1px;\n\t\talign-items: center;\n\t`;\n S.Label = styled_1.default.div `\n\t\tpadding: 0 5px;\n\t\tflex-grow: 1;\n\t`;\n S.Port = styled_1.default.div `\n\t\twidth: 15px;\n\t\theight: 15px;\n\t\tbackground: rgba(255, 255, 255, 0.1);\n\n\t\t&:hover {\n\t\t\tbackground: rgb(192, 255, 0);\n\t\t}\n\t`;\n})(S || (S = {}));\nclass DefaultPortLabel extends React.Component {\n render() {\n const port = (React.createElement(react_diagrams_core_1.PortWidget, { engine: this.props.engine, port: this.props.port },\n React.createElement(S.Port, null)));\n const label = React.createElement(S.Label, null, this.props.port.getOptions().label);\n return (React.createElement(S.PortLabel, null,\n this.props.port.getOptions().in ? port : label,\n this.props.port.getOptions().in ? label : port));\n }\n}\nexports.DefaultPortLabel = DefaultPortLabel;\n//# sourceMappingURL=DefaultPortLabelWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultPortModel = void 0;\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst DefaultLinkModel_1 = require(\"../link/DefaultLinkModel\");\nclass DefaultPortModel extends react_diagrams_core_1.PortModel {\n constructor(options, name, label) {\n if (!!name) {\n options = {\n in: !!options,\n name: name,\n label: label\n };\n }\n options = options;\n super(Object.assign({ label: options.label || options.name, alignment: options.in ? react_diagrams_core_1.PortModelAlignment.LEFT : react_diagrams_core_1.PortModelAlignment.RIGHT, type: 'default' }, options));\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.in = event.data.in;\n this.options.label = event.data.label;\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { in: this.options.in, label: this.options.label });\n }\n link(port, factory) {\n let link = this.createLinkModel(factory);\n link.setSourcePort(this);\n link.setTargetPort(port);\n return link;\n }\n canLinkToPort(port) {\n if (port instanceof DefaultPortModel) {\n return this.options.in !== port.getOptions().in;\n }\n return true;\n }\n createLinkModel(factory) {\n let link = super.createLinkModel();\n if (!link && factory) {\n return factory.generateModel({});\n }\n return link || new DefaultLinkModel_1.DefaultLinkModel();\n }\n}\nexports.DefaultPortModel = DefaultPortModel;\n//# sourceMappingURL=DefaultPortModel.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./label/DefaultLabelFactory\"), exports);\n__exportStar(require(\"./label/DefaultLabelModel\"), exports);\n__exportStar(require(\"./label/DefaultLabelWidget\"), exports);\n__exportStar(require(\"./link/DefaultLinkFactory\"), exports);\n__exportStar(require(\"./link/DefaultLinkModel\"), exports);\n__exportStar(require(\"./link/DefaultLinkWidget\"), exports);\n__exportStar(require(\"./link/DefaultLinkSegmentWidget\"), exports);\n__exportStar(require(\"./link/DefaultLinkPointWidget\"), exports);\n__exportStar(require(\"./node/DefaultNodeFactory\"), exports);\n__exportStar(require(\"./node/DefaultNodeModel\"), exports);\n__exportStar(require(\"./node/DefaultNodeWidget\"), exports);\n__exportStar(require(\"./port/DefaultPortFactory\"), exports);\n__exportStar(require(\"./port/DefaultPortLabelWidget\"), exports);\n__exportStar(require(\"./port/DefaultPortModel\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLabelFactory = void 0;\nconst React = require(\"react\");\nconst DefaultLabelModel_1 = require(\"./DefaultLabelModel\");\nconst DefaultLabelWidget_1 = require(\"./DefaultLabelWidget\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\n/**\n * @author Dylan Vorster\n */\nclass DefaultLabelFactory extends react_canvas_core_1.AbstractReactFactory {\n constructor() {\n super('default');\n }\n generateReactWidget(event) {\n return React.createElement(DefaultLabelWidget_1.DefaultLabelWidget, { model: event.model });\n }\n generateModel(event) {\n return new DefaultLabelModel_1.DefaultLabelModel();\n }\n}\nexports.DefaultLabelFactory = DefaultLabelFactory;\n//# sourceMappingURL=DefaultLabelFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLabelModel = void 0;\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nclass DefaultLabelModel extends react_diagrams_core_1.LabelModel {\n constructor(options = {}) {\n super(Object.assign({ offsetY: options.offsetY == null ? -23 : options.offsetY, type: 'default' }, options));\n }\n setLabel(label) {\n this.options.label = label;\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.label = event.data.label;\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { label: this.options.label });\n }\n}\nexports.DefaultLabelModel = DefaultLabelModel;\n//# sourceMappingURL=DefaultLabelModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLabelWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.Label = styled_1.default.div `\n\t\tbackground: rgba(0, 0, 0, 0.8);\n\t\tborder-radius: 5px;\n\t\tcolor: white;\n\t\tfont-size: 12px;\n\t\tpadding: 4px 8px;\n\t\tfont-family: sans-serif;\n\t\tuser-select: none;\n\t`;\n})(S || (S = {}));\nclass DefaultLabelWidget extends React.Component {\n render() {\n return React.createElement(S.Label, null, this.props.model.getOptions().label);\n }\n}\nexports.DefaultLabelWidget = DefaultLabelWidget;\n//# sourceMappingURL=DefaultLabelWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLinkFactory = void 0;\nconst React = require(\"react\");\nconst DefaultLinkModel_1 = require(\"./DefaultLinkModel\");\nconst DefaultLinkWidget_1 = require(\"./DefaultLinkWidget\");\nconst styled_1 = require(\"@emotion/styled\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nconst react_1 = require(\"@emotion/react\");\nvar S;\n(function (S) {\n S.Keyframes = (0, react_1.keyframes) `\n\t\tfrom {\n\t\t\tstroke-dashoffset: 24;\n\t\t}\n\t\tto {\n\t\t\tstroke-dashoffset: 0;\n\t\t}\n\t`;\n const selected = (0, react_1.css) `\n\t\tstroke-dasharray: 10, 2;\n\t\tanimation: ${S.Keyframes} 1s linear infinite;\n\t`;\n S.Path = styled_1.default.path `\n\t\t${(p) => p.selected && selected};\n\t\tfill: none;\n\t\tpointer-events: auto;\n\t`;\n})(S || (S = {}));\nclass DefaultLinkFactory extends react_canvas_core_1.AbstractReactFactory {\n constructor(type = 'default') {\n super(type);\n }\n generateReactWidget(event) {\n return React.createElement(DefaultLinkWidget_1.DefaultLinkWidget, { link: event.model, diagramEngine: this.engine });\n }\n generateModel(event) {\n return new DefaultLinkModel_1.DefaultLinkModel();\n }\n generateLinkSegment(model, selected, path) {\n return (React.createElement(S.Path, { selected: selected, stroke: selected ? model.getOptions().selectedColor : model.getOptions().color, strokeWidth: model.getOptions().width, d: path }));\n }\n}\nexports.DefaultLinkFactory = DefaultLinkFactory;\n//# sourceMappingURL=DefaultLinkFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLinkModel = void 0;\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst DefaultLabelModel_1 = require(\"../label/DefaultLabelModel\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nclass DefaultLinkModel extends react_diagrams_core_1.LinkModel {\n constructor(options = {}) {\n super(Object.assign({ type: 'default', width: options.width || 3, color: options.color || 'gray', selectedColor: options.selectedColor || 'rgb(0,192,255)', curvyness: 50 }, options));\n }\n calculateControlOffset(port) {\n if (port.getOptions().alignment === react_diagrams_core_1.PortModelAlignment.RIGHT) {\n return [this.options.curvyness, 0];\n }\n else if (port.getOptions().alignment === react_diagrams_core_1.PortModelAlignment.LEFT) {\n return [-this.options.curvyness, 0];\n }\n else if (port.getOptions().alignment === react_diagrams_core_1.PortModelAlignment.TOP) {\n return [0, -this.options.curvyness];\n }\n return [0, this.options.curvyness];\n }\n getSVGPath() {\n if (this.points.length == 2) {\n const curve = new geometry_1.BezierCurve();\n curve.setSource(this.getFirstPoint().getPosition());\n curve.setTarget(this.getLastPoint().getPosition());\n curve.setSourceControl(this.getFirstPoint().getPosition().clone());\n curve.setTargetControl(this.getLastPoint().getPosition().clone());\n if (this.sourcePort) {\n curve.getSourceControl().translate(...this.calculateControlOffset(this.getSourcePort()));\n }\n if (this.targetPort) {\n curve.getTargetControl().translate(...this.calculateControlOffset(this.getTargetPort()));\n }\n return curve.getSVGCurve();\n }\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { width: this.options.width, color: this.options.color, curvyness: this.options.curvyness, selectedColor: this.options.selectedColor });\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.color = event.data.color;\n this.options.width = event.data.width;\n this.options.curvyness = event.data.curvyness;\n this.options.selectedColor = event.data.selectedColor;\n }\n addLabel(label) {\n if (label instanceof react_diagrams_core_1.LabelModel) {\n return super.addLabel(label);\n }\n let labelOb = new DefaultLabelModel_1.DefaultLabelModel();\n labelOb.setLabel(label);\n return super.addLabel(labelOb);\n }\n setWidth(width) {\n this.options.width = width;\n this.fireEvent({ width }, 'widthChanged');\n }\n setColor(color) {\n this.options.color = color;\n this.fireEvent({ color }, 'colorChanged');\n }\n}\nexports.DefaultLinkModel = DefaultLinkModel;\n//# sourceMappingURL=DefaultLinkModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLinkPointWidget = void 0;\nconst React = require(\"react\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.PointTop = styled_1.default.circle `\n\t\tpointer-events: all;\n\t`;\n})(S || (S = {}));\nclass DefaultLinkPointWidget extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n selected: false\n };\n }\n render() {\n const { point } = this.props;\n return (React.createElement(\"g\", null,\n React.createElement(\"circle\", { cx: point.getPosition().x, cy: point.getPosition().y, r: 5, fill: this.state.selected || this.props.point.isSelected() ? this.props.colorSelected : this.props.color }),\n React.createElement(S.PointTop, { className: \"point\", onMouseLeave: () => {\n this.setState({ selected: false });\n }, onMouseEnter: () => {\n this.setState({ selected: true });\n }, \"data-id\": point.getID(), \"data-linkid\": point.getLink().getID(), cx: point.getPosition().x, cy: point.getPosition().y, r: 15, opacity: 0.0 })));\n }\n}\nexports.DefaultLinkPointWidget = DefaultLinkPointWidget;\n//# sourceMappingURL=DefaultLinkPointWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLinkSegmentWidget = void 0;\nconst React = require(\"react\");\nclass DefaultLinkSegmentWidget extends React.Component {\n render() {\n const Bottom = React.cloneElement(this.props.factory.generateLinkSegment(this.props.link, this.props.selected || this.props.link.isSelected(), this.props.path), {\n ref: this.props.forwardRef\n });\n const Top = React.cloneElement(Bottom, Object.assign(Object.assign({ strokeLinecap: 'round', onMouseLeave: () => {\n this.props.onSelection(false);\n }, onMouseEnter: () => {\n this.props.onSelection(true);\n } }, this.props.extras), { ref: null, 'data-linkid': this.props.link.getID(), strokeOpacity: this.props.selected ? 0.1 : 0, strokeWidth: 20, fill: 'none', onContextMenu: () => {\n if (!this.props.link.isLocked()) {\n event.preventDefault();\n this.props.link.remove();\n }\n } }));\n return (React.createElement(\"g\", null,\n Bottom,\n Top));\n }\n}\nexports.DefaultLinkSegmentWidget = DefaultLinkSegmentWidget;\n//# sourceMappingURL=DefaultLinkSegmentWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultLinkWidget = void 0;\nconst React = require(\"react\");\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst DefaultLinkPointWidget_1 = require(\"./DefaultLinkPointWidget\");\nconst DefaultLinkSegmentWidget_1 = require(\"./DefaultLinkSegmentWidget\");\nclass DefaultLinkWidget extends React.Component {\n constructor(props) {\n super(props);\n this.refPaths = [];\n this.state = {\n selected: false\n };\n }\n renderPoints() {\n var _a;\n return (_a = this.props.renderPoints) !== null && _a !== void 0 ? _a : true;\n }\n componentDidUpdate() {\n this.props.link.setRenderedPaths(this.refPaths.map((ref) => {\n return ref.current;\n }));\n }\n componentDidMount() {\n this.props.link.setRenderedPaths(this.refPaths.map((ref) => {\n return ref.current;\n }));\n }\n componentWillUnmount() {\n this.props.link.setRenderedPaths([]);\n }\n addPointToLink(event, index) {\n if (!event.shiftKey &&\n !this.props.link.isLocked() &&\n this.props.link.getPoints().length - 1 <= this.props.diagramEngine.getMaxNumberPointsPerLink()) {\n const point = new react_diagrams_core_1.PointModel({\n link: this.props.link,\n position: this.props.diagramEngine.getRelativeMousePoint(event)\n });\n this.props.link.addPoint(point, index);\n event.persist();\n event.stopPropagation();\n this.forceUpdate(() => {\n this.props.diagramEngine.getActionEventBus().fireAction({\n event,\n model: point\n });\n });\n }\n }\n generatePoint(point) {\n return (React.createElement(DefaultLinkPointWidget_1.DefaultLinkPointWidget, { key: point.getID(), point: point, colorSelected: this.props.link.getOptions().selectedColor, color: this.props.link.getOptions().color }));\n }\n generateLink(path, extraProps, id) {\n const ref = React.createRef();\n this.refPaths.push(ref);\n return (React.createElement(DefaultLinkSegmentWidget_1.DefaultLinkSegmentWidget, { key: `link-${id}`, path: path, selected: this.state.selected, diagramEngine: this.props.diagramEngine, factory: this.props.diagramEngine.getFactoryForLink(this.props.link), link: this.props.link, forwardRef: ref, onSelection: (selected) => {\n this.setState({ selected: selected });\n }, extras: extraProps }));\n }\n render() {\n //ensure id is present for all points on the path\n var points = this.props.link.getPoints();\n var paths = [];\n this.refPaths = [];\n if (points.length === 2) {\n paths.push(this.generateLink(this.props.link.getSVGPath(), {\n onMouseDown: (event) => {\n var _a, _b;\n (_b = (_a = this.props).selected) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n this.addPointToLink(event, 1);\n }\n }, '0'));\n // draw the link as dangeling\n if (this.props.link.getTargetPort() == null) {\n paths.push(this.generatePoint(points[1]));\n }\n }\n else {\n //draw the multiple anchors and complex line instead\n for (let j = 0; j < points.length - 1; j++) {\n paths.push(this.generateLink(react_diagrams_core_1.LinkWidget.generateLinePath(points[j], points[j + 1]), {\n 'data-linkid': this.props.link.getID(),\n 'data-point': j,\n onMouseDown: (event) => {\n var _a, _b;\n (_b = (_a = this.props).selected) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n this.addPointToLink(event, j + 1);\n }\n }, j));\n }\n if (this.renderPoints()) {\n //render the circles\n for (let i = 1; i < points.length - 1; i++) {\n paths.push(this.generatePoint(points[i]));\n }\n if (this.props.link.getTargetPort() == null) {\n paths.push(this.generatePoint(points[points.length - 1]));\n }\n }\n }\n return React.createElement(\"g\", { \"data-default-link-test\": this.props.link.getOptions().testName }, paths);\n }\n}\nexports.DefaultLinkWidget = DefaultLinkWidget;\n//# sourceMappingURL=DefaultLinkWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultNodeFactory = void 0;\nconst React = require(\"react\");\nconst DefaultNodeModel_1 = require(\"./DefaultNodeModel\");\nconst DefaultNodeWidget_1 = require(\"./DefaultNodeWidget\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass DefaultNodeFactory extends react_canvas_core_1.AbstractReactFactory {\n constructor() {\n super('default');\n }\n generateReactWidget(event) {\n return React.createElement(DefaultNodeWidget_1.DefaultNodeWidget, { engine: this.engine, node: event.model });\n }\n generateModel(event) {\n return new DefaultNodeModel_1.DefaultNodeModel();\n }\n}\nexports.DefaultNodeFactory = DefaultNodeFactory;\n//# sourceMappingURL=DefaultNodeFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultNodeModel = void 0;\nconst _ = require(\"lodash\");\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst DefaultPortModel_1 = require(\"../port/DefaultPortModel\");\nclass DefaultNodeModel extends react_diagrams_core_1.NodeModel {\n constructor(options = {}, color) {\n if (typeof options === 'string') {\n options = {\n name: options,\n color: color\n };\n }\n super(Object.assign({ type: 'default', name: 'Untitled', color: 'rgb(0,192,255)' }, options));\n this.portsOut = [];\n this.portsIn = [];\n }\n doClone(lookupTable, clone) {\n clone.portsIn = [];\n clone.portsOut = [];\n super.doClone(lookupTable, clone);\n }\n removePort(port) {\n super.removePort(port);\n if (port.getOptions().in) {\n this.portsIn.splice(this.portsIn.indexOf(port), 1);\n }\n else {\n this.portsOut.splice(this.portsOut.indexOf(port), 1);\n }\n }\n addPort(port) {\n super.addPort(port);\n if (port.getOptions().in) {\n if (this.portsIn.indexOf(port) === -1) {\n this.portsIn.push(port);\n }\n }\n else {\n if (this.portsOut.indexOf(port) === -1) {\n this.portsOut.push(port);\n }\n }\n return port;\n }\n addInPort(label, after = true) {\n const p = new DefaultPortModel_1.DefaultPortModel({\n in: true,\n name: label,\n label: label,\n alignment: react_diagrams_core_1.PortModelAlignment.LEFT\n });\n if (!after) {\n this.portsIn.splice(0, 0, p);\n }\n return this.addPort(p);\n }\n addOutPort(label, after = true) {\n const p = new DefaultPortModel_1.DefaultPortModel({\n in: false,\n name: label,\n label: label,\n alignment: react_diagrams_core_1.PortModelAlignment.RIGHT\n });\n if (!after) {\n this.portsOut.splice(0, 0, p);\n }\n return this.addPort(p);\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.name = event.data.name;\n this.options.color = event.data.color;\n this.portsIn = _.map(event.data.portsInOrder, (id) => {\n return this.getPortFromID(id);\n });\n this.portsOut = _.map(event.data.portsOutOrder, (id) => {\n return this.getPortFromID(id);\n });\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { name: this.options.name, color: this.options.color, portsInOrder: _.map(this.portsIn, (port) => {\n return port.getID();\n }), portsOutOrder: _.map(this.portsOut, (port) => {\n return port.getID();\n }) });\n }\n getInPorts() {\n return this.portsIn;\n }\n getOutPorts() {\n return this.portsOut;\n }\n}\nexports.DefaultNodeModel = DefaultNodeModel;\n//# sourceMappingURL=DefaultNodeModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultNodeWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nconst DefaultPortLabelWidget_1 = require(\"../port/DefaultPortLabelWidget\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.Node = styled_1.default.div `\n\t\tbackground-color: ${(p) => p.background};\n\t\tborder-radius: 5px;\n\t\tfont-family: sans-serif;\n\t\tcolor: white;\n\t\tborder: solid 2px black;\n\t\toverflow: visible;\n\t\tfont-size: 11px;\n\t\tborder: solid 2px ${(p) => (p.selected ? 'rgb(0,192,255)' : 'black')};\n\t`;\n S.Title = styled_1.default.div `\n\t\tbackground: rgba(0, 0, 0, 0.3);\n\t\tdisplay: flex;\n\t\twhite-space: nowrap;\n\t\tjustify-items: center;\n\t`;\n S.TitleName = styled_1.default.div `\n\t\tflex-grow: 1;\n\t\tpadding: 5px 5px;\n\t`;\n S.Ports = styled_1.default.div `\n\t\tdisplay: flex;\n\t\tbackground-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.2));\n\t`;\n S.PortsContainer = styled_1.default.div `\n\t\tflex-grow: 1;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\t&:first-of-type {\n\t\t\tmargin-right: 10px;\n\t\t}\n\n\t\t&:only-child {\n\t\t\tmargin-right: 0px;\n\t\t}\n\t`;\n})(S || (S = {}));\n/**\n * Default node that models the DefaultNodeModel. It creates two columns\n * for both all the input ports on the left, and the output ports on the right.\n */\nclass DefaultNodeWidget extends React.Component {\n constructor() {\n super(...arguments);\n this.generatePort = (port) => {\n return React.createElement(DefaultPortLabelWidget_1.DefaultPortLabel, { engine: this.props.engine, port: port, key: port.getID() });\n };\n }\n render() {\n return (React.createElement(S.Node, { \"data-default-node-name\": this.props.node.getOptions().name, selected: this.props.node.isSelected(), background: this.props.node.getOptions().color },\n React.createElement(S.Title, null,\n React.createElement(S.TitleName, null, this.props.node.getOptions().name)),\n React.createElement(S.Ports, null,\n React.createElement(S.PortsContainer, null, _.map(this.props.node.getInPorts(), this.generatePort)),\n React.createElement(S.PortsContainer, null, _.map(this.props.node.getOutPorts(), this.generatePort)))));\n }\n}\nexports.DefaultNodeWidget = DefaultNodeWidget;\n//# sourceMappingURL=DefaultNodeWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultPortFactory = void 0;\nconst DefaultPortModel_1 = require(\"./DefaultPortModel\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass DefaultPortFactory extends react_canvas_core_1.AbstractModelFactory {\n constructor() {\n super('default');\n }\n generateModel() {\n return new DefaultPortModel_1.DefaultPortModel({\n name: 'unknown'\n });\n }\n}\nexports.DefaultPortFactory = DefaultPortFactory;\n//# sourceMappingURL=DefaultPortFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultPortLabel = void 0;\nconst React = require(\"react\");\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst styled_1 = require(\"@emotion/styled\");\nvar S;\n(function (S) {\n S.PortLabel = styled_1.default.div `\n\t\tdisplay: flex;\n\t\tmargin-top: 1px;\n\t\talign-items: center;\n\t`;\n S.Label = styled_1.default.div `\n\t\tpadding: 0 5px;\n\t\tflex-grow: 1;\n\t`;\n S.Port = styled_1.default.div `\n\t\twidth: 15px;\n\t\theight: 15px;\n\t\tbackground: rgba(255, 255, 255, 0.1);\n\n\t\t&:hover {\n\t\t\tbackground: rgb(192, 255, 0);\n\t\t}\n\t`;\n})(S || (S = {}));\nclass DefaultPortLabel extends React.Component {\n render() {\n const port = (React.createElement(react_diagrams_core_1.PortWidget, { engine: this.props.engine, port: this.props.port },\n React.createElement(S.Port, null)));\n const label = React.createElement(S.Label, null, this.props.port.getOptions().label);\n return (React.createElement(S.PortLabel, null,\n this.props.port.getOptions().in ? port : label,\n this.props.port.getOptions().in ? label : port));\n }\n}\nexports.DefaultPortLabel = DefaultPortLabel;\n//# sourceMappingURL=DefaultPortLabelWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultPortModel = void 0;\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst DefaultLinkModel_1 = require(\"../link/DefaultLinkModel\");\nclass DefaultPortModel extends react_diagrams_core_1.PortModel {\n constructor(options, name, label) {\n if (!!name) {\n options = {\n in: !!options,\n name: name,\n label: label\n };\n }\n options = options;\n super(Object.assign({ label: options.label || options.name, alignment: options.in ? react_diagrams_core_1.PortModelAlignment.LEFT : react_diagrams_core_1.PortModelAlignment.RIGHT, type: 'default' }, options));\n }\n deserialize(event) {\n super.deserialize(event);\n this.options.in = event.data.in;\n this.options.label = event.data.label;\n }\n serialize() {\n return Object.assign(Object.assign({}, super.serialize()), { in: this.options.in, label: this.options.label });\n }\n link(port, factory) {\n let link = this.createLinkModel(factory);\n link.setSourcePort(this);\n link.setTargetPort(port);\n return link;\n }\n canLinkToPort(port) {\n if (port instanceof DefaultPortModel) {\n return this.options.in !== port.getOptions().in;\n }\n return true;\n }\n createLinkModel(factory) {\n let link = super.createLinkModel();\n if (!link && factory) {\n return factory.generateModel({});\n }\n return link || new DefaultLinkModel_1.DefaultLinkModel();\n }\n}\nexports.DefaultPortModel = DefaultPortModel;\n//# sourceMappingURL=DefaultPortModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DagreEngine = void 0;\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst dagre = require(\"dagre\");\nconst _ = require(\"lodash\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nclass DagreEngine {\n constructor(options = {}) {\n this.options = options;\n }\n redistribute(model) {\n // Create a new directed graph\n var g = new dagre.graphlib.Graph({\n multigraph: true,\n compound: true\n });\n g.setGraph(this.options.graph || {});\n g.setDefaultEdgeLabel(function () {\n return {};\n });\n // set nodes\n _.forEach(model.getNodes(), (node) => {\n g.setNode(node.getID(), { width: node.width, height: node.height });\n });\n _.forEach(model.getLinks(), (link) => {\n // set edges\n if (link.getSourcePort() && link.getTargetPort()) {\n g.setEdge({\n v: link.getSourcePort().getNode().getID(),\n w: link.getTargetPort().getNode().getID(),\n name: link.getID()\n });\n }\n });\n // layout the graph\n dagre.layout(g);\n g.nodes().forEach((v) => {\n const node = g.node(v);\n model.getNode(v).setPosition(node.x - node.width / 2, node.y - node.height / 2);\n });\n // also include links?\n if (this.options.includeLinks) {\n g.edges().forEach((e) => {\n const edge = g.edge(e);\n const link = model.getLink(e.name);\n const points = [link.getFirstPoint()];\n for (let i = 1; i < edge.points.length - 1; i++) {\n points.push(new react_diagrams_core_1.PointModel({ link: link, position: new geometry_1.Point(edge.points[i].x, edge.points[i].y) }));\n }\n link.setPoints(points.concat(link.getLastPoint()));\n });\n }\n }\n}\nexports.DagreEngine = DagreEngine;\n//# sourceMappingURL=DagreEngine.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathFinding = void 0;\nconst PF = require(\"pathfinding\");\n/*\nit can be very expensive to calculate routes when every single pixel on the canvas\nis individually represented. Using the factor below, we combine values in order\nto achieve the best trade-off between accuracy and performance.\n*/\nconst pathFinderInstance = new PF.JumpPointFinder({\n heuristic: PF.Heuristic.manhattan,\n diagonalMovement: PF.DiagonalMovement.Never\n});\nclass PathFinding {\n constructor(factory) {\n this.instance = pathFinderInstance;\n this.factory = factory;\n }\n /**\n * Taking as argument a fully unblocked walking matrix, this method\n * finds a direct path from point A to B.\n */\n calculateDirectPath(from, to) {\n const matrix = this.factory.getCanvasMatrix();\n const grid = new PF.Grid(matrix);\n return pathFinderInstance.findPath(this.factory.translateRoutingX(Math.floor(from.getX() / this.factory.ROUTING_SCALING_FACTOR)), this.factory.translateRoutingY(Math.floor(from.getY() / this.factory.ROUTING_SCALING_FACTOR)), this.factory.translateRoutingX(Math.floor(to.getX() / this.factory.ROUTING_SCALING_FACTOR)), this.factory.translateRoutingY(Math.floor(to.getY() / this.factory.ROUTING_SCALING_FACTOR)), grid);\n }\n /**\n * Using @link{#calculateDirectPath}'s result as input, we here\n * determine the first walkable point found in the matrix that includes\n * blocked paths.\n */\n calculateLinkStartEndCoords(matrix, path) {\n const startIndex = path.findIndex((point) => {\n if (matrix[point[1]])\n return matrix[point[1]][point[0]] === 0;\n else\n return false;\n });\n const endIndex = path.length -\n 1 -\n path\n .slice()\n .reverse()\n .findIndex((point) => {\n if (matrix[point[1]])\n return matrix[point[1]][point[0]] === 0;\n else\n return false;\n });\n // are we trying to create a path exclusively through blocked areas?\n // if so, let's fallback to the linear routing\n if (startIndex === -1 || endIndex === -1) {\n return undefined;\n }\n const pathToStart = path.slice(0, startIndex);\n const pathToEnd = path.slice(endIndex);\n return {\n start: {\n x: path[startIndex][0],\n y: path[startIndex][1]\n },\n end: {\n x: path[endIndex][0],\n y: path[endIndex][1]\n },\n pathToStart,\n pathToEnd\n };\n }\n /**\n * Puts everything together: merges the paths from/to the centre of the ports,\n * with the path calculated around other elements.\n */\n calculateDynamicPath(routingMatrix, start, end, pathToStart, pathToEnd) {\n // generate the path based on the matrix with obstacles\n const grid = new PF.Grid(routingMatrix);\n const dynamicPath = pathFinderInstance.findPath(start.x, start.y, end.x, end.y, grid);\n // aggregate everything to have the calculated path ready for rendering\n const pathCoords = pathToStart\n .concat(dynamicPath, pathToEnd)\n .map((coords) => [\n this.factory.translateRoutingX(coords[0], true),\n this.factory.translateRoutingY(coords[1], true)\n ]);\n return PF.Util.compressPath(pathCoords);\n }\n}\nexports.PathFinding = PathFinding;\n//# sourceMappingURL=PathFinding.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./link/PathFindingLinkFactory\"), exports);\n__exportStar(require(\"./link/PathFindingLinkModel\"), exports);\n__exportStar(require(\"./link/PathFindingLinkWidget\"), exports);\n__exportStar(require(\"./link/RightAngleLinkWidget\"), exports);\n__exportStar(require(\"./link/RightAngleLinkFactory\"), exports);\n__exportStar(require(\"./link/RightAngleLinkModel\"), exports);\n__exportStar(require(\"./engine/PathFinding\"), exports);\n__exportStar(require(\"./dagre/DagreEngine\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathFindingLinkFactory = void 0;\nconst React = require(\"react\");\nconst PathFindingLinkModel_1 = require(\"./PathFindingLinkModel\");\nconst PathFindingLinkWidget_1 = require(\"./PathFindingLinkWidget\");\nconst _ = require(\"lodash\");\nconst Path = require(\"paths-js/path\");\nconst react_diagrams_defaults_1 = require(\"@projectstorm/react-diagrams-defaults\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\nclass PathFindingLinkFactory extends react_diagrams_defaults_1.DefaultLinkFactory {\n constructor() {\n super(PathFindingLinkFactory.NAME);\n this.ROUTING_SCALING_FACTOR = 5;\n // calculated only when smart routing is active\n this.canvasMatrix = [];\n this.routingMatrix = [];\n // used when at least one element has negative coordinates\n this.hAdjustmentFactor = 0;\n this.vAdjustmentFactor = 0;\n /**\n * Despite being a long method, we simply iterate over all three collections (nodes, ports and points)\n * to find the highest X and Y dimensions, so we can build the matrix large enough to contain all elements.\n */\n this.calculateMatrixDimensions = () => {\n const allNodesCoords = _.values(this.engine.getModel().getNodes()).map((item) => ({\n x: item.getX(),\n width: item.width,\n y: item.getY(),\n height: item.height\n }));\n const allLinks = _.values(this.engine.getModel().getLinks());\n const allPortsCoords = _.flatMap(allLinks.map((link) => [link.getSourcePort(), link.getTargetPort()]))\n .filter((port) => port !== null)\n .map((item) => ({\n x: item.getX(),\n width: item.width,\n y: item.getY(),\n height: item.height\n }));\n const allPointsCoords = _.flatMap(allLinks.map((link) => link.getPoints())).map((item) => ({\n // points don't have width/height, so let's just use 0\n x: item.getX(),\n width: 0,\n y: item.getY(),\n height: 0\n }));\n const sumProps = (object, props) => _.reduce(props, (acc, prop) => acc + _.get(object, prop, 0), 0);\n const canvas = this.engine.getCanvas();\n const concatedCoords = _.concat(allNodesCoords, allPortsCoords, allPointsCoords);\n const minX = Math.floor(Math.min(_.get(_.minBy(concatedCoords, 'x'), 'x', 0), 0) / this.ROUTING_SCALING_FACTOR) *\n this.ROUTING_SCALING_FACTOR;\n const maxXElement = _.maxBy(concatedCoords, (item) => sumProps(item, ['x', 'width']));\n const maxX = Math.max(sumProps(maxXElement, ['x', 'width']), canvas.offsetWidth);\n const minYCoords = _.minBy(concatedCoords, 'y');\n const minY = Math.floor(Math.min(_.get(minYCoords, 'y', 0), 0) / this.ROUTING_SCALING_FACTOR) * this.ROUTING_SCALING_FACTOR;\n const maxYElement = _.maxBy(concatedCoords, (item) => sumProps(item, ['y', 'height']));\n const maxY = Math.max(sumProps(maxYElement, ['y', 'height']), canvas.offsetHeight);\n return {\n width: Math.ceil(Math.abs(minX) + maxX),\n hAdjustmentFactor: Math.abs(minX) / this.ROUTING_SCALING_FACTOR + 1,\n height: Math.ceil(Math.abs(minY) + maxY),\n vAdjustmentFactor: Math.abs(minY) / this.ROUTING_SCALING_FACTOR + 1\n };\n };\n /**\n * Updates (by reference) where nodes will be drawn on the matrix passed in.\n */\n this.markNodes = (matrix) => {\n _.values(this.engine.getModel().getNodes()).forEach((node) => {\n const startX = Math.floor(node.getX() / this.ROUTING_SCALING_FACTOR);\n const endX = Math.ceil((node.getX() + node.width) / this.ROUTING_SCALING_FACTOR);\n const startY = Math.floor(node.getY() / this.ROUTING_SCALING_FACTOR);\n const endY = Math.ceil((node.getY() + node.height) / this.ROUTING_SCALING_FACTOR);\n for (let x = startX - 1; x <= endX + 1; x++) {\n for (let y = startY - 1; y < endY + 1; y++) {\n this.markMatrixPoint(matrix, this.translateRoutingX(x), this.translateRoutingY(y));\n }\n }\n });\n };\n /**\n * Updates (by reference) where ports will be drawn on the matrix passed in.\n */\n this.markPorts = (matrix) => {\n const allElements = _.flatMap(_.values(this.engine.getModel().getLinks()).map((link) => [].concat(link.getSourcePort(), link.getTargetPort())));\n allElements\n .filter((port) => port !== null)\n .forEach((port) => {\n const startX = Math.floor(port.x / this.ROUTING_SCALING_FACTOR);\n const endX = Math.ceil((port.x + port.width) / this.ROUTING_SCALING_FACTOR);\n const startY = Math.floor(port.y / this.ROUTING_SCALING_FACTOR);\n const endY = Math.ceil((port.y + port.height) / this.ROUTING_SCALING_FACTOR);\n for (let x = startX - 1; x <= endX + 1; x++) {\n for (let y = startY - 1; y < endY + 1; y++) {\n this.markMatrixPoint(matrix, this.translateRoutingX(x), this.translateRoutingY(y));\n }\n }\n });\n };\n this.markMatrixPoint = (matrix, x, y) => {\n if (matrix[y] !== undefined && matrix[y][x] !== undefined) {\n matrix[y][x] = 1;\n }\n };\n }\n setDiagramEngine(engine) {\n super.setDiagramEngine(engine);\n // listen for drag changes\n engine.getStateMachine().registerListener({\n stateChanged: (event) => {\n if (event.newState instanceof react_canvas_core_1.AbstractDisplacementState) {\n const deRegister = engine.getActionEventBus().registerAction(new react_canvas_core_1.Action({\n type: react_canvas_core_1.InputType.MOUSE_UP,\n fire: () => {\n this.calculateRoutingMatrix();\n engine.repaintCanvas();\n deRegister();\n }\n }));\n }\n }\n });\n this.listener = engine.registerListener({\n canvasReady: () => {\n _.defer(() => {\n this.calculateRoutingMatrix();\n engine.repaintCanvas();\n });\n }\n });\n }\n setFactoryBank(bank) {\n super.setFactoryBank(bank);\n if (!bank && this.listener) {\n this.listener.deregister();\n }\n }\n generateReactWidget(event) {\n return React.createElement(PathFindingLinkWidget_1.PathFindingLinkWidget, { diagramEngine: this.engine, link: event.model, factory: this });\n }\n generateModel(event) {\n return new PathFindingLinkModel_1.PathFindingLinkModel();\n }\n /**\n * A representation of the canvas in the following format:\n *\n * +-----------------+\n * | 0 0 0 0 0 0 0 0 |\n * | 0 0 0 0 0 0 0 0 |\n * | 0 0 0 0 0 0 0 0 |\n * | 0 0 0 0 0 0 0 0 |\n * | 0 0 0 0 0 0 0 0 |\n * +-----------------+\n *\n * In which all walkable points are marked by zeros.\n * It uses @link{#ROUTING_SCALING_FACTOR} to reduce the matrix dimensions and improve performance.\n */\n getCanvasMatrix() {\n if (this.canvasMatrix.length === 0) {\n this.calculateCanvasMatrix();\n }\n return this.canvasMatrix;\n }\n calculateCanvasMatrix() {\n const { width: canvasWidth, hAdjustmentFactor, height: canvasHeight, vAdjustmentFactor } = this.calculateMatrixDimensions();\n this.hAdjustmentFactor = hAdjustmentFactor;\n this.vAdjustmentFactor = vAdjustmentFactor;\n const matrixWidth = Math.ceil(canvasWidth / this.ROUTING_SCALING_FACTOR);\n const matrixHeight = Math.ceil(canvasHeight / this.ROUTING_SCALING_FACTOR);\n this.canvasMatrix = _.range(0, matrixHeight).map(() => {\n return new Array(matrixWidth).fill(0);\n });\n }\n /**\n * A representation of the canvas in the following format:\n *\n * +-----------------+\n * | 0 0 1 1 0 0 0 0 |\n * | 0 0 1 1 0 0 1 1 |\n * | 0 0 0 0 0 0 1 1 |\n * | 1 1 0 0 0 0 0 0 |\n * | 1 1 0 0 0 0 0 0 |\n * +-----------------+\n *\n * In which all points blocked by a node (and its ports) are\n * marked as 1; points were there is nothing (ie, free) receive 0.\n */\n getRoutingMatrix() {\n if (this.routingMatrix.length === 0) {\n this.calculateRoutingMatrix();\n }\n return this.routingMatrix;\n }\n calculateRoutingMatrix() {\n const matrix = _.cloneDeep(this.getCanvasMatrix());\n // nodes need to be marked as blocked points\n this.markNodes(matrix);\n // same thing for ports\n this.markPorts(matrix);\n this.routingMatrix = matrix;\n }\n /**\n * The routing matrix does not have negative indexes, but elements could be negatively positioned.\n * We use the functions below to translate back and forth between these coordinates, relying on the\n * calculated values of hAdjustmentFactor and vAdjustmentFactor.\n */\n translateRoutingX(x, reverse = false) {\n return x + this.hAdjustmentFactor * (reverse ? -1 : 1);\n }\n translateRoutingY(y, reverse = false) {\n return y + this.vAdjustmentFactor * (reverse ? -1 : 1);\n }\n generateDynamicPath(pathCoords) {\n let path = Path();\n path = path.moveto(pathCoords[0][0] * this.ROUTING_SCALING_FACTOR, pathCoords[0][1] * this.ROUTING_SCALING_FACTOR);\n pathCoords.slice(1).forEach((coords) => {\n path = path.lineto(coords[0] * this.ROUTING_SCALING_FACTOR, coords[1] * this.ROUTING_SCALING_FACTOR);\n });\n return path.print();\n }\n}\nexports.PathFindingLinkFactory = PathFindingLinkFactory;\nPathFindingLinkFactory.NAME = 'pathfinding';\n//# sourceMappingURL=PathFindingLinkFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathFindingLinkModel = void 0;\nconst PathFindingLinkFactory_1 = require(\"./PathFindingLinkFactory\");\nconst react_diagrams_defaults_1 = require(\"@projectstorm/react-diagrams-defaults\");\nclass PathFindingLinkModel extends react_diagrams_defaults_1.DefaultLinkModel {\n constructor(options = {}) {\n super(Object.assign({ type: PathFindingLinkFactory_1.PathFindingLinkFactory.NAME }, options));\n }\n performanceTune() {\n return false;\n }\n}\nexports.PathFindingLinkModel = PathFindingLinkModel;\n//# sourceMappingURL=PathFindingLinkModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathFindingLinkWidget = void 0;\nconst React = require(\"react\");\nconst _ = require(\"lodash\");\nconst PathFinding_1 = require(\"../engine/PathFinding\");\nconst react_diagrams_defaults_1 = require(\"@projectstorm/react-diagrams-defaults\");\nclass PathFindingLinkWidget extends React.Component {\n constructor(props) {\n super(props);\n this.refPaths = [];\n this.state = {\n selected: false\n };\n this.pathFinding = new PathFinding_1.PathFinding(this.props.factory);\n }\n componentDidUpdate() {\n this.props.link.setRenderedPaths(this.refPaths.map((ref) => {\n return ref.current;\n }));\n }\n componentDidMount() {\n this.props.link.setRenderedPaths(this.refPaths.map((ref) => {\n return ref.current;\n }));\n }\n componentWillUnmount() {\n this.props.link.setRenderedPaths([]);\n }\n generateLink(path, id) {\n const ref = React.createRef();\n this.refPaths.push(ref);\n return (React.createElement(react_diagrams_defaults_1.DefaultLinkSegmentWidget, { key: `link-${id}`, path: path, selected: this.state.selected, diagramEngine: this.props.diagramEngine, factory: this.props.diagramEngine.getFactoryForLink(this.props.link), link: this.props.link, forwardRef: ref, onSelection: (selected) => {\n this.setState({ selected: selected });\n }, extras: {} }));\n }\n render() {\n this.refPaths = [];\n //ensure id is present for all points on the path\n var points = this.props.link.getPoints();\n var paths = [];\n // first step: calculate a direct path between the points being linked\n const directPathCoords = this.pathFinding.calculateDirectPath(_.first(points), _.last(points));\n const routingMatrix = this.props.factory.getRoutingMatrix();\n // now we need to extract, from the routing matrix, the very first walkable points\n // so they can be used as origin and destination of the link to be created\n const smartLink = this.pathFinding.calculateLinkStartEndCoords(routingMatrix, directPathCoords);\n if (smartLink) {\n const { start, end, pathToStart, pathToEnd } = smartLink;\n // second step: calculate a path avoiding hitting other elements\n const simplifiedPath = this.pathFinding.calculateDynamicPath(routingMatrix, start, end, pathToStart, pathToEnd);\n paths.push(\n //smooth: boolean, extraProps: any, id: string | number, firstPoint: PointModel, lastPoint: PointModel\n this.generateLink(this.props.factory.generateDynamicPath(simplifiedPath), '0'));\n }\n return React.createElement(React.Fragment, null, paths);\n }\n}\nexports.PathFindingLinkWidget = PathFindingLinkWidget;\n//# sourceMappingURL=PathFindingLinkWidget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RightAngleLinkFactory = void 0;\nconst React = require(\"react\");\nconst RightAngleLinkWidget_1 = require(\"./RightAngleLinkWidget\");\nconst react_diagrams_defaults_1 = require(\"@projectstorm/react-diagrams-defaults\");\nconst RightAngleLinkModel_1 = require(\"./RightAngleLinkModel\");\n/**\n * @author Daniel Lazar\n */\nclass RightAngleLinkFactory extends react_diagrams_defaults_1.DefaultLinkFactory {\n constructor() {\n super(RightAngleLinkFactory.NAME);\n }\n generateModel(event) {\n return new RightAngleLinkModel_1.RightAngleLinkModel();\n }\n generateReactWidget(event) {\n return React.createElement(RightAngleLinkWidget_1.RightAngleLinkWidget, { diagramEngine: this.engine, link: event.model, factory: this });\n }\n}\nexports.RightAngleLinkFactory = RightAngleLinkFactory;\nRightAngleLinkFactory.NAME = 'rightAngle';\n//# sourceMappingURL=RightAngleLinkFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RightAngleLinkModel = void 0;\nconst react_diagrams_defaults_1 = require(\"@projectstorm/react-diagrams-defaults\");\nconst RightAngleLinkFactory_1 = require(\"./RightAngleLinkFactory\");\nclass RightAngleLinkModel extends react_diagrams_defaults_1.DefaultLinkModel {\n constructor(options = {}) {\n super(Object.assign({ type: RightAngleLinkFactory_1.RightAngleLinkFactory.NAME }, options));\n this.lastHoverIndexOfPath = 0;\n this._lastPathXdirection = false;\n this._firstPathXdirection = false;\n }\n setFirstAndLastPathsDirection() {\n let points = this.getPoints();\n for (let i = 1; i < points.length; i += points.length - 2) {\n let dx = Math.abs(points[i].getX() - points[i - 1].getX());\n let dy = Math.abs(points[i].getY() - points[i - 1].getY());\n if (i - 1 === 0) {\n this._firstPathXdirection = dx > dy;\n }\n else {\n this._lastPathXdirection = dx > dy;\n }\n }\n }\n // @ts-ignore\n addPoint(pointModel, index = 1) {\n // @ts-ignore\n super.addPoint(pointModel, index);\n this.setFirstAndLastPathsDirection();\n return pointModel;\n }\n deserialize(event) {\n super.deserialize(event);\n this.setFirstAndLastPathsDirection();\n }\n setManuallyFirstAndLastPathsDirection(first, last) {\n this._firstPathXdirection = first;\n this._lastPathXdirection = last;\n }\n getLastPathXdirection() {\n return this._lastPathXdirection;\n }\n getFirstPathXdirection() {\n return this._firstPathXdirection;\n }\n setWidth(width) {\n this.options.width = width;\n this.fireEvent({ width }, 'widthChanged');\n }\n setColor(color) {\n this.options.color = color;\n this.fireEvent({ color }, 'colorChanged');\n }\n}\nexports.RightAngleLinkModel = RightAngleLinkModel;\n//# sourceMappingURL=RightAngleLinkModel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RightAngleLinkWidget = void 0;\nconst React = require(\"react\");\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst react_diagrams_defaults_1 = require(\"@projectstorm/react-diagrams-defaults\");\nconst geometry_1 = require(\"@projectstorm/geometry\");\nclass RightAngleLinkWidget extends React.Component {\n constructor(props) {\n super(props);\n this.handleMove = function (event) {\n this.draggingEvent(event, this.dragging_index);\n }.bind(this);\n this.handleUp = function (event) {\n // Unregister handlers to avoid multiple event handlers for other links\n this.setState({ canDrag: false, selected: false });\n window.removeEventListener('mousemove', this.handleMove);\n window.removeEventListener('mouseup', this.handleUp);\n }.bind(this);\n this.refPaths = [];\n this.state = {\n selected: false,\n canDrag: false\n };\n this.dragging_index = 0;\n }\n componentDidUpdate() {\n this.props.link.setRenderedPaths(this.refPaths.map((ref) => {\n return ref.current;\n }));\n }\n componentDidMount() {\n this.props.link.setRenderedPaths(this.refPaths.map((ref) => {\n return ref.current;\n }));\n }\n componentWillUnmount() {\n this.props.link.setRenderedPaths([]);\n }\n generateLink(path, extraProps, id) {\n const ref = React.createRef();\n this.refPaths.push(ref);\n return (React.createElement(react_diagrams_defaults_1.DefaultLinkSegmentWidget, { key: `link-${id}`, path: path, selected: this.state.selected, diagramEngine: this.props.diagramEngine, factory: this.props.diagramEngine.getFactoryForLink(this.props.link), link: this.props.link, forwardRef: ref, onSelection: (selected) => {\n this.setState({ selected: selected });\n }, extras: extraProps }));\n }\n calculatePositions(points, event, index, coordinate) {\n // If path is first or last add another point to keep node port on its position\n if (index === 0) {\n let point = new react_diagrams_core_1.PointModel({\n link: this.props.link,\n position: new geometry_1.Point(points[index].getX(), points[index].getY())\n });\n this.props.link.addPoint(point, index);\n this.dragging_index++;\n return;\n }\n else if (index === points.length - 2) {\n let point = new react_diagrams_core_1.PointModel({\n link: this.props.link,\n position: new geometry_1.Point(points[index + 1].getX(), points[index + 1].getY())\n });\n this.props.link.addPoint(point, index + 1);\n return;\n }\n // Merge two points if it is not close to node port and close to each other\n if (index - 2 > 0) {\n let _points = {\n [index - 2]: points[index - 2].getPosition(),\n [index + 1]: points[index + 1].getPosition(),\n [index - 1]: points[index - 1].getPosition()\n };\n if (Math.abs(_points[index - 1][coordinate] - _points[index + 1][coordinate]) < 5) {\n _points[index - 2][coordinate] = this.props.diagramEngine.getRelativeMousePoint(event)[coordinate];\n _points[index + 1][coordinate] = this.props.diagramEngine.getRelativeMousePoint(event)[coordinate];\n points[index - 2].setPosition(_points[index - 2]);\n points[index + 1].setPosition(_points[index + 1]);\n points[index - 1].remove();\n points[index - 1].remove();\n this.dragging_index--;\n this.dragging_index--;\n return;\n }\n }\n // Merge two points if it is not close to node port\n if (index + 2 < points.length - 2) {\n let _points = {\n [index + 3]: points[index + 3].getPosition(),\n [index + 2]: points[index + 2].getPosition(),\n [index + 1]: points[index + 1].getPosition(),\n [index]: points[index].getPosition()\n };\n if (Math.abs(_points[index + 1][coordinate] - _points[index + 2][coordinate]) < 5) {\n _points[index][coordinate] = this.props.diagramEngine.getRelativeMousePoint(event)[coordinate];\n _points[index + 3][coordinate] = this.props.diagramEngine.getRelativeMousePoint(event)[coordinate];\n points[index].setPosition(_points[index]);\n points[index + 3].setPosition(_points[index + 3]);\n points[index + 1].remove();\n points[index + 1].remove();\n return;\n }\n }\n // If no condition above handled then just update path points position\n let _points = {\n [index]: points[index].getPosition(),\n [index + 1]: points[index + 1].getPosition()\n };\n _points[index][coordinate] = this.props.diagramEngine.getRelativeMousePoint(event)[coordinate];\n _points[index + 1][coordinate] = this.props.diagramEngine.getRelativeMousePoint(event)[coordinate];\n points[index].setPosition(_points[index]);\n points[index + 1].setPosition(_points[index + 1]);\n }\n draggingEvent(event, index) {\n let points = this.props.link.getPoints();\n // get moving difference. Index + 1 will work because links indexes has\n // length = points.lenght - 1\n let dx = Math.abs(points[index].getX() - points[index + 1].getX());\n let dy = Math.abs(points[index].getY() - points[index + 1].getY());\n // moving with y direction\n if (dx === 0) {\n this.calculatePositions(points, event, index, 'x');\n }\n else if (dy === 0) {\n this.calculatePositions(points, event, index, 'y');\n }\n this.props.link.setFirstAndLastPathsDirection();\n }\n render() {\n //ensure id is present for all points on the path\n let points = this.props.link.getPoints();\n let paths = [];\n // Get points based on link orientation\n let pointLeft = points[0];\n let pointRight = points[points.length - 1];\n let hadToSwitch = false;\n if (pointLeft.getX() > pointRight.getX()) {\n pointLeft = points[points.length - 1];\n pointRight = points[0];\n hadToSwitch = true;\n }\n let dy = Math.abs(points[0].getY() - points[points.length - 1].getY());\n // When new link add one middle point to get everywhere 90° angle\n if (this.props.link.getTargetPort() === null && points.length === 2) {\n [...Array(2)].forEach((item) => {\n this.props.link.addPoint(new react_diagrams_core_1.PointModel({\n link: this.props.link,\n position: new geometry_1.Point(pointLeft.getX(), pointRight.getY())\n }), 1);\n });\n this.props.link.setManuallyFirstAndLastPathsDirection(true, true);\n }\n // When new link is moving and not connected to target port move with middle point\n // TODO: @DanielLazarLDAPPS This will be better to update in DragNewLinkState\n // in function fireMouseMoved to avoid calling this unexpectedly e.g. after Deserialize\n else if (this.props.link.getTargetPort() === null && this.props.link.getSourcePort() !== null) {\n points[1].setPosition(pointRight.getX() + (pointLeft.getX() - pointRight.getX()) / 2, !hadToSwitch ? pointLeft.getY() : pointRight.getY());\n points[2].setPosition(pointRight.getX() + (pointLeft.getX() - pointRight.getX()) / 2, !hadToSwitch ? pointRight.getY() : pointLeft.getY());\n }\n // Render was called but link is not moved but user.\n // Node is moved and in this case fix coordinates to get 90° angle.\n // For loop just for first and last path\n else if (!this.state.canDrag && points.length > 2) {\n // Those points and its position only will be moved\n for (let i = 1; i < points.length; i += points.length - 2) {\n if (i - 1 === 0) {\n if (this.props.link.getFirstPathXdirection()) {\n points[i].setPosition(points[i].getX(), points[i - 1].getY());\n }\n else {\n points[i].setPosition(points[i - 1].getX(), points[i].getY());\n }\n }\n else {\n if (this.props.link.getLastPathXdirection()) {\n points[i - 1].setPosition(points[i - 1].getX(), points[i].getY());\n }\n else {\n points[i - 1].setPosition(points[i].getX(), points[i - 1].getY());\n }\n }\n }\n }\n // If there is existing link which has two points add one\n // NOTE: It doesn't matter if check is for dy or dx\n if (points.length === 2 && dy !== 0 && !this.state.canDrag) {\n this.props.link.addPoint(new react_diagrams_core_1.PointModel({\n link: this.props.link,\n position: new geometry_1.Point(pointLeft.getX(), pointRight.getY())\n }));\n }\n for (let j = 0; j < points.length - 1; j++) {\n paths.push(this.generateLink(react_diagrams_core_1.LinkWidget.generateLinePath(points[j], points[j + 1]), {\n 'data-linkid': this.props.link.getID(),\n 'data-point': j,\n onMouseDown: (event) => {\n if (event.button === 0) {\n this.setState({ canDrag: true });\n this.dragging_index = j;\n // Register mouse move event to track mouse position\n // On mouse up these events are unregistered check \"this.handleUp\"\n window.addEventListener('mousemove', this.handleMove);\n window.addEventListener('mouseup', this.handleUp);\n }\n },\n onMouseEnter: (event) => {\n this.setState({ selected: true });\n this.props.link.lastHoverIndexOfPath = j;\n }\n }, j));\n }\n this.refPaths = [];\n return React.createElement(\"g\", { \"data-default-link-test\": this.props.link.getOptions().testName }, paths);\n }\n}\nexports.RightAngleLinkWidget = RightAngleLinkWidget;\nRightAngleLinkWidget.defaultProps = {\n color: 'red',\n width: 3,\n link: null,\n smooth: false,\n diagramEngine: null,\n factory: null\n};\n//# sourceMappingURL=RightAngleLinkWidget.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_diagrams_core_1 = require(\"@projectstorm/react-diagrams-core\");\nconst react_diagrams_defaults_1 = require(\"@projectstorm/react-diagrams-defaults\");\nconst react_diagrams_routing_1 = require(\"@projectstorm/react-diagrams-routing\");\nconst react_canvas_core_1 = require(\"@projectstorm/react-canvas-core\");\n__exportStar(require(\"@projectstorm/react-diagrams-core\"), exports);\n__exportStar(require(\"@projectstorm/react-diagrams-defaults\"), exports);\n__exportStar(require(\"@projectstorm/react-diagrams-routing\"), exports);\n/**\n * Construct an engine with the defaults installed\n */\nexports.default = (options = {}) => {\n const engine = new react_diagrams_core_1.DiagramEngine(options);\n // register model factories\n engine.getLayerFactories().registerFactory(new react_diagrams_core_1.NodeLayerFactory());\n engine.getLayerFactories().registerFactory(new react_diagrams_core_1.LinkLayerFactory());\n engine.getLayerFactories().registerFactory(new react_canvas_core_1.SelectionBoxLayerFactory());\n engine.getLabelFactories().registerFactory(new react_diagrams_defaults_1.DefaultLabelFactory());\n engine.getNodeFactories().registerFactory(new react_diagrams_defaults_1.DefaultNodeFactory()); // i cant figure out why\n engine.getLinkFactories().registerFactory(new react_diagrams_defaults_1.DefaultLinkFactory());\n engine.getLinkFactories().registerFactory(new react_diagrams_routing_1.PathFindingLinkFactory());\n engine.getPortFactories().registerFactory(new react_diagrams_defaults_1.DefaultPortFactory());\n // register the default interaction behaviours\n engine.getStateMachine().pushState(new react_diagrams_core_1.DefaultDiagramState());\n return engine;\n};\n//# sourceMappingURL=index.js.map","/**\r\n * Use invariant() to assert state which your program assumes to be true.\r\n *\r\n * Provide sprintf-style format (only %s is supported) and arguments\r\n * to provide information about what broke and what you were\r\n * expecting.\r\n *\r\n * The invariant message will be stripped in production, but the invariant\r\n * will remain to ensure logic does not differ in production.\r\n */\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n\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 var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n\n throw error;\n }\n}\n\nexport { invariant };\n//# sourceMappingURL=invariant.esm.js.map\n","function shallowEqual(objA, objB, compare, compareContext) {\n var compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (compareResult !== void 0) {\n return !!compareResult;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (compareResult === false || compareResult === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { shallowEqual };\n//# sourceMappingURL=shallowequal.esm.js.map\n","import { CANCEL } from '@redux-saga/symbols';\n\nvar MAX_SIGNED_INT = 2147483647;\nfunction delayP(ms, val) {\n if (val === void 0) {\n val = true;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\n if (process.env.NODE_ENV !== 'production' && ms > MAX_SIGNED_INT) {\n throw new Error('delay only supports a maximum value of ' + MAX_SIGNED_INT + 'ms');\n }\n\n var timeoutId;\n var promise = new Promise(function (resolve) {\n timeoutId = setTimeout(resolve, Math.min(MAX_SIGNED_INT, ms), val);\n });\n\n promise[CANCEL] = function () {\n clearTimeout(timeoutId);\n };\n\n return promise;\n}\n\nexport default delayP;\n","import { TASK_CANCEL, TERMINATE, SAGA_LOCATION, SAGA_ACTION, IO, SELF_CANCELLATION } from '@redux-saga/symbols';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { array, notUndef, pattern, multicast, channel, undef, effect, task, func, buffer, string, object } from '@redux-saga/is';\nimport delayP from '@redux-saga/delay-p';\n\nvar konst = function konst(v) {\n return function () {\n return v;\n };\n};\nvar kTrue =\n/*#__PURE__*/\nkonst(true);\n\nvar noop = function noop() {};\n\nif (process.env.NODE_ENV !== 'production' && typeof Proxy !== 'undefined') {\n noop =\n /*#__PURE__*/\n new Proxy(noop, {\n set: function set() {\n throw internalErr('There was an attempt to assign a property to internal `noop` function.');\n }\n });\n}\nvar identity = function identity(v) {\n return v;\n};\nvar hasSymbol = typeof Symbol === 'function';\nvar asyncIteratorSymbol = hasSymbol && Symbol.asyncIterator ? Symbol.asyncIterator : '@@asyncIterator';\nfunction check(value, predicate, error) {\n if (!predicate(value)) {\n throw new Error(error);\n }\n}\nvar assignWithSymbols = function assignWithSymbols(target, source) {\n _extends(target, source);\n\n if (Object.getOwnPropertySymbols) {\n Object.getOwnPropertySymbols(source).forEach(function (s) {\n target[s] = source[s];\n });\n }\n};\nvar flatMap = function flatMap(mapper, arr) {\n var _ref;\n\n return (_ref = []).concat.apply(_ref, arr.map(mapper));\n};\nfunction remove(array, item) {\n var index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction once(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n fn();\n };\n}\n\nvar kThrow = function kThrow(err) {\n throw err;\n};\n\nvar kReturn = function kReturn(value) {\n return {\n value: value,\n done: true\n };\n};\n\nfunction makeIterator(next, thro, name) {\n if (thro === void 0) {\n thro = kThrow;\n }\n\n if (name === void 0) {\n name = 'iterator';\n }\n\n var iterator = {\n meta: {\n name: name\n },\n next: next,\n throw: thro,\n return: kReturn,\n isSagaIterator: true\n };\n\n if (typeof Symbol !== 'undefined') {\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n }\n\n return iterator;\n}\nfunction logError(error, _ref2) {\n var sagaStack = _ref2.sagaStack;\n\n /*eslint-disable no-console*/\n console.error(error);\n console.error(sagaStack);\n}\nvar internalErr = function internalErr(err) {\n return new Error(\"\\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\\n Error: \" + err + \"\\n\");\n};\nvar createSetContextWarning = function createSetContextWarning(ctx, props) {\n return (ctx ? ctx + '.' : '') + \"setContext(props): argument \" + props + \" is not a plain object\";\n};\nvar FROZEN_ACTION_ERROR = \"You can't put (a.k.a. dispatch from saga) frozen actions.\\nWe have to define a special non-enumerable property on those actions for scheduling purposes.\\nOtherwise you wouldn't be able to communicate properly between sagas & other subscribers (action ordering would become far less predictable).\\nIf you are using redux and you care about this behaviour (frozen actions),\\nthen you might want to switch to freezing actions in a middleware rather than in action creator.\\nExample implementation:\\n\\nconst freezeActions = store => next => action => next(Object.freeze(action))\\n\"; // creates empty, but not-holey array\n\nvar createEmptyArray = function createEmptyArray(n) {\n return Array.apply(null, new Array(n));\n};\nvar wrapSagaDispatch = function wrapSagaDispatch(dispatch) {\n return function (action) {\n if (process.env.NODE_ENV !== 'production') {\n check(action, function (ac) {\n return !Object.isFrozen(ac);\n }, FROZEN_ACTION_ERROR);\n }\n\n return dispatch(Object.defineProperty(action, SAGA_ACTION, {\n value: true\n }));\n };\n};\nvar shouldTerminate = function shouldTerminate(res) {\n return res === TERMINATE;\n};\nvar shouldCancel = function shouldCancel(res) {\n return res === TASK_CANCEL;\n};\nvar shouldComplete = function shouldComplete(res) {\n return shouldTerminate(res) || shouldCancel(res);\n};\nfunction createAllStyleChildCallbacks(shape, parentCallback) {\n var keys = Object.keys(shape);\n var totalCount = keys.length;\n\n if (process.env.NODE_ENV !== 'production') {\n check(totalCount, function (c) {\n return c > 0;\n }, 'createAllStyleChildCallbacks: get an empty array or object');\n }\n\n var completedCount = 0;\n var completed;\n var results = array(shape) ? createEmptyArray(totalCount) : {};\n var childCallbacks = {};\n\n function checkEnd() {\n if (completedCount === totalCount) {\n completed = true;\n parentCallback(results);\n }\n }\n\n keys.forEach(function (key) {\n var chCbAtKey = function chCbAtKey(res, isErr) {\n if (completed) {\n return;\n }\n\n if (isErr || shouldComplete(res)) {\n parentCallback.cancel();\n parentCallback(res, isErr);\n } else {\n results[key] = res;\n completedCount++;\n checkEnd();\n }\n };\n\n chCbAtKey.cancel = noop;\n childCallbacks[key] = chCbAtKey;\n });\n\n parentCallback.cancel = function () {\n if (!completed) {\n completed = true;\n keys.forEach(function (key) {\n return childCallbacks[key].cancel();\n });\n }\n };\n\n return childCallbacks;\n}\nfunction getMetaInfo(fn) {\n return {\n name: fn.name || 'anonymous',\n location: getLocation(fn)\n };\n}\nfunction getLocation(instrumented) {\n return instrumented[SAGA_LOCATION];\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\nvar BUFFER_OVERFLOW = \"Channel's Buffer overflow!\";\nvar ON_OVERFLOW_THROW = 1;\nvar ON_OVERFLOW_DROP = 2;\nvar ON_OVERFLOW_SLIDE = 3;\nvar ON_OVERFLOW_EXPAND = 4;\nvar zeroBuffer = {\n isEmpty: kTrue,\n put: noop,\n take: noop\n};\n\nfunction ringBuffer(limit, overflowAction) {\n if (limit === void 0) {\n limit = 10;\n }\n\n var arr = new Array(limit);\n var length = 0;\n var pushIndex = 0;\n var popIndex = 0;\n\n var push = function push(it) {\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n length++;\n };\n\n var take = function take() {\n if (length != 0) {\n var it = arr[popIndex];\n arr[popIndex] = null;\n length--;\n popIndex = (popIndex + 1) % limit;\n return it;\n }\n };\n\n var flush = function flush() {\n var items = [];\n\n while (length) {\n items.push(take());\n }\n\n return items;\n };\n\n return {\n isEmpty: function isEmpty() {\n return length == 0;\n },\n put: function put(it) {\n if (length < limit) {\n push(it);\n } else {\n var doubledLimit;\n\n switch (overflowAction) {\n case ON_OVERFLOW_THROW:\n throw new Error(BUFFER_OVERFLOW);\n\n case ON_OVERFLOW_SLIDE:\n arr[pushIndex] = it;\n pushIndex = (pushIndex + 1) % limit;\n popIndex = pushIndex;\n break;\n\n case ON_OVERFLOW_EXPAND:\n doubledLimit = 2 * limit;\n arr = flush();\n length = arr.length;\n pushIndex = arr.length;\n popIndex = 0;\n arr.length = doubledLimit;\n limit = doubledLimit;\n push(it);\n break;\n\n default: // DROP\n\n }\n }\n },\n take: take,\n flush: flush\n };\n}\n\nvar none = function none() {\n return zeroBuffer;\n};\nvar fixed = function fixed(limit) {\n return ringBuffer(limit, ON_OVERFLOW_THROW);\n};\nvar dropping = function dropping(limit) {\n return ringBuffer(limit, ON_OVERFLOW_DROP);\n};\nvar sliding = function sliding(limit) {\n return ringBuffer(limit, ON_OVERFLOW_SLIDE);\n};\nvar expanding = function expanding(initialSize) {\n return ringBuffer(initialSize, ON_OVERFLOW_EXPAND);\n};\n\nvar buffers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n none: none,\n fixed: fixed,\n dropping: dropping,\n sliding: sliding,\n expanding: expanding\n});\n\nvar TAKE = 'TAKE';\nvar PUT = 'PUT';\nvar ALL = 'ALL';\nvar RACE = 'RACE';\nvar CALL = 'CALL';\nvar CPS = 'CPS';\nvar FORK = 'FORK';\nvar JOIN = 'JOIN';\nvar CANCEL = 'CANCEL';\nvar SELECT = 'SELECT';\nvar ACTION_CHANNEL = 'ACTION_CHANNEL';\nvar CANCELLED = 'CANCELLED';\nvar FLUSH = 'FLUSH';\nvar GET_CONTEXT = 'GET_CONTEXT';\nvar SET_CONTEXT = 'SET_CONTEXT';\n\nvar effectTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n TAKE: TAKE,\n PUT: PUT,\n ALL: ALL,\n RACE: RACE,\n CALL: CALL,\n CPS: CPS,\n FORK: FORK,\n JOIN: JOIN,\n CANCEL: CANCEL,\n SELECT: SELECT,\n ACTION_CHANNEL: ACTION_CHANNEL,\n CANCELLED: CANCELLED,\n FLUSH: FLUSH,\n GET_CONTEXT: GET_CONTEXT,\n SET_CONTEXT: SET_CONTEXT\n});\n\nvar TEST_HINT = '\\n(HINT: if you are getting these errors in tests, consider using createMockTask from @redux-saga/testing-utils)';\n\nvar makeEffect = function makeEffect(type, payload) {\n var _ref;\n\n return _ref = {}, _ref[IO] = true, _ref.combinator = false, _ref.type = type, _ref.payload = payload, _ref;\n};\n\nvar isForkEffect = function isForkEffect(eff) {\n return effect(eff) && eff.type === FORK;\n};\n\nvar detach = function detach(eff) {\n if (process.env.NODE_ENV !== 'production') {\n check(eff, isForkEffect, 'detach(eff): argument must be a fork effect');\n }\n\n return makeEffect(FORK, _extends({}, eff.payload, {\n detached: true\n }));\n};\nfunction take(patternOrChannel, multicastPattern) {\n if (patternOrChannel === void 0) {\n patternOrChannel = '*';\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'take(patternOrChannel): patternOrChannel is undefined');\n }\n\n if (pattern(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(pattern) takes one argument but two were provided. Consider passing an array for listening to several action types\");\n }\n\n return makeEffect(TAKE, {\n pattern: patternOrChannel\n });\n }\n\n if (multicast(patternOrChannel) && notUndef(multicastPattern) && pattern(multicastPattern)) {\n return makeEffect(TAKE, {\n channel: patternOrChannel,\n pattern: multicastPattern\n });\n }\n\n if (channel(patternOrChannel)) {\n if (notUndef(multicastPattern)) {\n /* eslint-disable no-console */\n console.warn(\"take(channel) takes one argument but two were provided. Second argument is ignored.\");\n }\n\n return makeEffect(TAKE, {\n channel: patternOrChannel\n });\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"take(patternOrChannel): argument \" + patternOrChannel + \" is not valid channel or a valid pattern\");\n }\n}\nvar takeMaybe = function takeMaybe() {\n var eff = take.apply(void 0, arguments);\n eff.payload.maybe = true;\n return eff;\n};\nfunction put(channel$1, action) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n check(channel$1, notUndef, 'put(channel, action): argument channel is undefined');\n check(channel$1, channel, \"put(channel, action): argument \" + channel$1 + \" is not a valid channel\");\n check(action, notUndef, 'put(channel, action): argument action is undefined');\n } else {\n check(channel$1, notUndef, 'put(action): argument action is undefined');\n }\n }\n\n if (undef(action)) {\n action = channel$1; // `undefined` instead of `null` to make default parameter work\n\n channel$1 = undefined;\n }\n\n return makeEffect(PUT, {\n channel: channel$1,\n action: action\n });\n}\nvar putResolve = function putResolve() {\n var eff = put.apply(void 0, arguments);\n eff.payload.resolve = true;\n return eff;\n};\nfunction all(effects) {\n var eff = makeEffect(ALL, effects);\n eff.combinator = true;\n return eff;\n}\nfunction race(effects) {\n var eff = makeEffect(RACE, effects);\n eff.combinator = true;\n return eff;\n} // this match getFnCallDescriptor logic\n\nvar validateFnDescriptor = function validateFnDescriptor(effectName, fnDescriptor) {\n check(fnDescriptor, notUndef, effectName + \": argument fn is undefined or null\");\n\n if (func(fnDescriptor)) {\n return;\n }\n\n var context = null;\n var fn;\n\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n check(fn, notUndef, effectName + \": argument of type [context, fn] has undefined or null `fn`\");\n } else if (object(fnDescriptor)) {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n check(fn, notUndef, effectName + \": argument of type {context, fn} has undefined or null `fn`\");\n } else {\n check(fnDescriptor, func, effectName + \": argument fn is not function\");\n return;\n }\n\n if (context && string(fn)) {\n check(context[fn], func, effectName + \": context arguments has no such method - \\\"\" + fn + \"\\\"\");\n return;\n }\n\n check(fn, func, effectName + \": unpacked fn argument (from [context, fn] or {context, fn}) is not a function\");\n};\n\nfunction getFnCallDescriptor(fnDescriptor, args) {\n var context = null;\n var fn;\n\n if (func(fnDescriptor)) {\n fn = fnDescriptor;\n } else {\n if (array(fnDescriptor)) {\n context = fnDescriptor[0];\n fn = fnDescriptor[1];\n } else {\n context = fnDescriptor.context;\n fn = fnDescriptor.fn;\n }\n\n if (context && string(fn) && func(context[fn])) {\n fn = context[fn];\n }\n }\n\n return {\n context: context,\n fn: fn,\n args: args\n };\n}\n\nvar isNotDelayEffect = function isNotDelayEffect(fn) {\n return fn !== delay;\n};\n\nfunction call(fnDescriptor) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var arg0 = typeof args[0] === 'number' ? args[0] : 'ms';\n check(fnDescriptor, isNotDelayEffect, \"instead of writing `yield call(delay, \" + arg0 + \")` where delay is an effect from `redux-saga/effects` you should write `yield delay(\" + arg0 + \")`\");\n validateFnDescriptor('call', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction apply(context, fn, args) {\n if (args === void 0) {\n args = [];\n }\n\n var fnDescriptor = [context, fn];\n\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('apply', fnDescriptor);\n }\n\n return makeEffect(CALL, getFnCallDescriptor([context, fn], args));\n}\nfunction cps(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('cps', fnDescriptor);\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return makeEffect(CPS, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction fork(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('fork', fnDescriptor);\n check(fnDescriptor, function (arg) {\n return !effect(arg);\n }, 'fork: argument must not be an effect');\n }\n\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return makeEffect(FORK, getFnCallDescriptor(fnDescriptor, args));\n}\nfunction spawn(fnDescriptor) {\n if (process.env.NODE_ENV !== 'production') {\n validateFnDescriptor('spawn', fnDescriptor);\n }\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n return detach(fork.apply(void 0, [fnDescriptor].concat(args)));\n}\nfunction join(taskOrTasks) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('join(...tasks) is not supported any more. Please use join([...tasks]) to join multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"join([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else {\n check(taskOrTasks, task, \"join(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(JOIN, taskOrTasks);\n}\nfunction cancel(taskOrTasks) {\n if (taskOrTasks === void 0) {\n taskOrTasks = SELF_CANCELLATION;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n throw new Error('cancel(...tasks) is not supported any more. Please use cancel([...tasks]) to cancel multiple tasks.');\n }\n\n if (array(taskOrTasks)) {\n taskOrTasks.forEach(function (t) {\n check(t, task, \"cancel([...tasks]): argument \" + t + \" is not a valid Task object \" + TEST_HINT);\n });\n } else if (taskOrTasks !== SELF_CANCELLATION && notUndef(taskOrTasks)) {\n check(taskOrTasks, task, \"cancel(task): argument \" + taskOrTasks + \" is not a valid Task object \" + TEST_HINT);\n }\n }\n\n return makeEffect(CANCEL, taskOrTasks);\n}\nfunction select(selector) {\n if (selector === void 0) {\n selector = identity;\n }\n\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n if (process.env.NODE_ENV !== 'production' && arguments.length) {\n check(arguments[0], notUndef, 'select(selector, [...]): argument selector is undefined');\n check(selector, func, \"select(selector, [...]): argument \" + selector + \" is not a function\");\n }\n\n return makeEffect(SELECT, {\n selector: selector,\n args: args\n });\n}\n/**\n channel(pattern, [buffer]) => creates a proxy channel for store actions\n**/\n\nfunction actionChannel(pattern$1, buffer$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(pattern$1, pattern, 'actionChannel(pattern,...): argument pattern is not valid');\n\n if (arguments.length > 1) {\n check(buffer$1, notUndef, 'actionChannel(pattern, buffer): argument buffer is undefined');\n check(buffer$1, buffer, \"actionChannel(pattern, buffer): argument \" + buffer$1 + \" is not a valid buffer\");\n }\n }\n\n return makeEffect(ACTION_CHANNEL, {\n pattern: pattern$1,\n buffer: buffer$1\n });\n}\nfunction cancelled() {\n return makeEffect(CANCELLED, {});\n}\nfunction flush(channel$1) {\n if (process.env.NODE_ENV !== 'production') {\n check(channel$1, channel, \"flush(channel): argument \" + channel$1 + \" is not valid channel\");\n }\n\n return makeEffect(FLUSH, channel$1);\n}\nfunction getContext(prop) {\n if (process.env.NODE_ENV !== 'production') {\n check(prop, string, \"getContext(prop): argument \" + prop + \" is not a string\");\n }\n\n return makeEffect(GET_CONTEXT, prop);\n}\nfunction setContext(props) {\n if (process.env.NODE_ENV !== 'production') {\n check(props, object, createSetContextWarning(null, props));\n }\n\n return makeEffect(SET_CONTEXT, props);\n}\nvar delay =\n/*#__PURE__*/\ncall.bind(null, delayP);\n\nexport { all as $, ALL as A, compose as B, CALL as C, logError as D, wrapSagaDispatch as E, FORK as F, GET_CONTEXT as G, identity as H, buffers as I, JOIN as J, detach as K, take as L, fork as M, cancel as N, call as O, PUT as P, delay as Q, RACE as R, SELECT as S, TAKE as T, actionChannel as U, sliding as V, race as W, effectTypes as X, takeMaybe as Y, put as Z, putResolve as _, CPS as a, apply as a0, cps as a1, spawn as a2, join as a3, select as a4, cancelled as a5, flush as a6, getContext as a7, setContext as a8, CANCEL as b, check as c, ACTION_CHANNEL as d, expanding as e, CANCELLED as f, FLUSH as g, SET_CONTEXT as h, internalErr as i, getMetaInfo as j, kTrue as k, createAllStyleChildCallbacks as l, createEmptyArray as m, none as n, once as o, assignWithSymbols as p, makeIterator as q, remove as r, shouldComplete as s, noop as t, flatMap as u, getLocation as v, createSetContextWarning as w, asyncIteratorSymbol as x, shouldCancel as y, shouldTerminate as z };\n","import { TASK, SAGA_ACTION, MULTICAST, IO } from '@redux-saga/symbols';\n\nvar undef = function undef(v) {\n return v === null || v === undefined;\n};\nvar notUndef = function notUndef(v) {\n return v !== null && v !== undefined;\n};\nvar func = function func(f) {\n return typeof f === 'function';\n};\nvar number = function number(n) {\n return typeof n === 'number';\n};\nvar string = function string(s) {\n return typeof s === 'string';\n};\nvar array = Array.isArray;\nvar object = function object(obj) {\n return obj && !array(obj) && typeof obj === 'object';\n};\nvar promise = function promise(p) {\n return p && func(p.then);\n};\nvar iterator = function iterator(it) {\n return it && func(it.next) && func(it.throw);\n};\nvar iterable = function iterable(it) {\n return it && func(Symbol) ? func(it[Symbol.iterator]) : array(it);\n};\nvar task = function task(t) {\n return t && t[TASK];\n};\nvar sagaAction = function sagaAction(a) {\n return Boolean(a && a[SAGA_ACTION]);\n};\nvar observable = function observable(ob) {\n return ob && func(ob.subscribe);\n};\nvar buffer = function buffer(buf) {\n return buf && func(buf.isEmpty) && func(buf.take) && func(buf.put);\n};\nvar pattern = function pattern(pat) {\n return pat && (string(pat) || symbol(pat) || func(pat) || array(pat) && pat.every(pattern));\n};\nvar channel = function channel(ch) {\n return ch && func(ch.take) && func(ch.close);\n};\nvar stringableFunc = function stringableFunc(f) {\n return func(f) && f.hasOwnProperty('toString');\n};\nvar symbol = function symbol(sym) {\n return Boolean(sym) && typeof Symbol === 'function' && sym.constructor === Symbol && sym !== Symbol.prototype;\n};\nvar multicast = function multicast(ch) {\n return channel(ch) && ch[MULTICAST];\n};\nvar effect = function effect(eff) {\n return eff && eff[IO];\n};\n\nexport { array, buffer, channel, effect, func, iterable, iterator, multicast, notUndef, number, object, observable, pattern, promise, sagaAction, string, stringableFunc, symbol, task, undef };\n","var createSymbol = function createSymbol(name) {\n return \"@@redux-saga/\" + name;\n};\n\nvar CANCEL =\n/*#__PURE__*/\ncreateSymbol('CANCEL_PROMISE');\nvar CHANNEL_END_TYPE =\n/*#__PURE__*/\ncreateSymbol('CHANNEL_END');\nvar IO =\n/*#__PURE__*/\ncreateSymbol('IO');\nvar MATCH =\n/*#__PURE__*/\ncreateSymbol('MATCH');\nvar MULTICAST =\n/*#__PURE__*/\ncreateSymbol('MULTICAST');\nvar SAGA_ACTION =\n/*#__PURE__*/\ncreateSymbol('SAGA_ACTION');\nvar SELF_CANCELLATION =\n/*#__PURE__*/\ncreateSymbol('SELF_CANCELLATION');\nvar TASK =\n/*#__PURE__*/\ncreateSymbol('TASK');\nvar TASK_CANCEL =\n/*#__PURE__*/\ncreateSymbol('TASK_CANCEL');\nvar TERMINATE =\n/*#__PURE__*/\ncreateSymbol('TERMINATE');\nvar SAGA_LOCATION =\n/*#__PURE__*/\ncreateSymbol('LOCATION');\n\nexport { CANCEL, CHANNEL_END_TYPE, IO, MATCH, MULTICAST, SAGA_ACTION, SAGA_LOCATION, SELF_CANCELLATION, TASK, TASK_CANCEL, TERMINATE };\n","/**\n * Tagify (v 3.19.2)- tags input component\n * By Yair Even-Or\n * Don't sell this code. (c)\n * https://github.com/yairEO/tagify\n */\n\n!function(e,t){\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?module.exports=t():e.React.tagify=t()}(this,function(){\"use strict\";function u(e){return(u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.default=void 0;var e,z=function(e){if(e&&e.__esModule)return e;if(null===e||\"object\"!==u(e)&&\"function\"!=typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var n,r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(n in e){var i;Object.prototype.hasOwnProperty.call(e,n)&&((i=o?Object.getOwnPropertyDescriptor(e,n):null)&&(i.get||i.set)?Object.defineProperty(r,n,i):r[n]=e[n])}r.default=e,t&&t.set(e,r);return r}(require(\"react\")),G=require(\"react-dom/server\"),t=require(\"prop-types\"),H=(e=require(\"./tagify.min.js\"))&&e.__esModule?e:{default:e};function a(){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function L(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if(\"string\"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);nt.length)&&(e=t.length);for(var i=0,s=new Array(e);i/g,\">\").replace(/\"/g,\""\").replace(/`|'/g,\"'\")}function c(t,e,i){function s(t,e){for(var i in e)e.hasOwnProperty(i)&&(r(e[i])?r(t[i])?s(t[i],e[i]):t[i]=Object.assign({},e[i]):t[i]=e[i])}return t instanceof Object||(t={}),s(t,e),i&&s(t,i),t}function h(t){return String.prototype.normalize?\"string\"==typeof t?t.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g,\"\"):void 0:t}var g={init:function(){this.DOM.dropdown=this.parseTemplate(\"dropdown\",[this.settings]),this.DOM.dropdown.content=this.DOM.dropdown.querySelector(\".\"+this.settings.classNames.dropdownWrapper)},show:function(t){var e,i,s,a=this,n=this.settings,l=window.getSelection(),d=\"mix\"==n.mode&&!n.enforceWhitelist,c=!n.whitelist||!n.whitelist.length,h=\"manual\"==n.dropdown.position;if((!c||d||n.templates.dropdownItemNoMatch)&&!1!==n.dropdown.enable&&!this.state.isLoading){if(clearTimeout(this.dropdownHide__bindEventsTimeout),this.suggestedListItems=this.dropdown.filterListItems.call(this,t),t&&!this.suggestedListItems.length&&(this.trigger(\"dropdown:noMatch\",t),n.templates.dropdownItemNoMatch&&(s=n.templates.dropdownItemNoMatch.call(this,{value:t}))),!s){if(this.suggestedListItems.length)t&&d&&!this.state.editing.scope&&!o(this.suggestedListItems[0].value,t)&&this.suggestedListItems.unshift({value:t});else{if(!t||!d||this.state.editing.scope)return this.input.autocomplete.suggest.call(this),void this.dropdown.hide.call(this);this.suggestedListItems=[{value:t}]}i=\"\"+(r(e=this.suggestedListItems[0])?e.value:e),n.autoComplete&&i&&0==i.indexOf(t)&&this.input.autocomplete.suggest.call(this,e)}this.dropdown.fill.call(this,s),n.dropdown.highlightFirst&&this.dropdown.highlightOption.call(this,this.DOM.dropdown.content.children[0]),this.state.dropdown.visible||setTimeout(this.dropdown.events.binding.bind(this)),this.state.dropdown.visible=t||!0,this.state.dropdown.query=t,this.state.selection={anchorOffset:l.anchorOffset,anchorNode:l.anchorNode},h||setTimeout((function(){a.dropdown.position.call(a),a.dropdown.render.call(a)})),setTimeout((function(){a.trigger(\"dropdown:show\",a.DOM.dropdown)}))}},hide:function(t){var e=this,i=this.DOM,s=i.scope,a=i.dropdown,n=\"manual\"==this.settings.dropdown.position&&!t;if(a&&document.body.contains(a)&&!n)return window.removeEventListener(\"resize\",this.dropdown.position),this.dropdown.events.binding.call(this,!1),s.setAttribute(\"aria-expanded\",!1),a.parentNode.removeChild(a),setTimeout((function(){e.state.dropdown.visible=!1}),100),this.state.dropdown.query=this.state.ddItemData=this.state.ddItemElm=this.state.selection=null,this.state.tag&&this.state.tag.value.length&&(this.state.flaggedTags[this.state.tag.baseOffset]=this.state.tag),this.trigger(\"dropdown:hide\",a),this},render:function(){var t,e,i,s=this,a=(t=this.DOM.dropdown,(i=t.cloneNode(!0)).style.cssText=\"position:fixed; top:-9999px; opacity:0\",document.body.appendChild(i),e=i.clientHeight,i.parentNode.removeChild(i),e),n=this.settings;return this.DOM.scope.setAttribute(\"aria-expanded\",!0),document.body.contains(this.DOM.dropdown)||(this.DOM.dropdown.classList.add(n.classNames.dropdownInital),this.dropdown.position.call(this,a),n.dropdown.appendTarget.appendChild(this.DOM.dropdown),setTimeout((function(){return s.DOM.dropdown.classList.remove(n.classNames.dropdownInital)}))),this},fill:function(t){var e;t=\"string\"==typeof t?t:this.dropdown.createListHTML.call(this,t||this.suggestedListItems),this.DOM.dropdown.content.innerHTML=(e=t)?e.replace(/\\>[\\r\\n ]+\\<\").replace(/(<.*?>)|\\s+/g,(function(t,e){return e||\" \"})):\"\"},refilter:function(t){t=t||this.state.dropdown.query||\"\",this.suggestedListItems=this.dropdown.filterListItems.call(this,t),this.suggestedListItems.length?this.dropdown.fill.call(this):this.dropdown.hide.call(this),this.trigger(\"dropdown:updated\",this.DOM.dropdown)},position:function(t){if(\"manual\"!=this.settings.dropdown.position){var e,i,s,a,n,o,r,l=this.DOM.dropdown,d=document.documentElement.clientHeight,c=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)>480?this.settings.dropdown.position:\"all\",h=this.DOM[\"input\"==c?\"input\":\"scope\"];t=t||l.clientHeight,this.state.dropdown.visible&&(\"text\"==c?(a=(i=this.getCaretGlobalPosition()).bottom,s=i.top,n=i.left,o=\"auto\"):(r=function(t){for(var e=0,i=0;t;)e+=t.offsetLeft||0,i+=t.offsetTop||0,t=t.parentNode;return{left:e,top:i}}(this.settings.dropdown.appendTarget),s=(i=h.getBoundingClientRect()).top+2-r.top,a=i.bottom-1-r.top,n=i.left-r.left,o=i.width+\"px\"),s=Math.floor(s),a=Math.ceil(a),e=d-i.bottom0&&void 0!==arguments[0])||arguments[0],e=this.dropdown.events.callbacks,i=this.listeners.dropdown=this.listeners.dropdown||{position:this.dropdown.position.bind(this),onKeyDown:e.onKeyDown.bind(this),onMouseOver:e.onMouseOver.bind(this),onMouseLeave:e.onMouseLeave.bind(this),onClick:e.onClick.bind(this),onScroll:e.onScroll.bind(this)},s=t?\"addEventListener\":\"removeEventListener\";\"manual\"!=this.settings.dropdown.position&&(window[s](\"resize\",i.position),window[s](\"keydown\",i.onKeyDown)),this.DOM.dropdown[s](\"mouseover\",i.onMouseOver),this.DOM.dropdown[s](\"mouseleave\",i.onMouseLeave),this.DOM.dropdown[s](\"mousedown\",i.onClick),this.DOM.dropdown.content[s](\"scroll\",i.onScroll)},callbacks:{onKeyDown:function(t){var e=this.DOM.dropdown.querySelector(\"[class$='--active']\"),i=e;switch(t.key){case\"ArrowDown\":case\"ArrowUp\":case\"Down\":case\"Up\":var s;t.preventDefault(),i&&(i=i[(\"ArrowUp\"==t.key||\"Up\"==t.key?\"previous\":\"next\")+\"ElementSibling\"]),i||(i=(s=this.DOM.dropdown.content.children)[\"ArrowUp\"==t.key||\"Up\"==t.key?s.length-1:0]),this.dropdown.highlightOption.call(this,i,!0);break;case\"Escape\":case\"Esc\":this.dropdown.hide.call(this);break;case\"ArrowRight\":if(this.state.actions.ArrowLeft)return;case\"Tab\":if(\"mix\"!=this.settings.mode&&i&&!this.settings.autoComplete.rightKey&&!this.state.editing){t.preventDefault();var a=i.getAttribute(\"tagifySuggestionIdx\"),n=a?this.suggestedListItems[+a]:\"\";return this.input.autocomplete.set.call(this,n.value||n),!1}return!0;case\"Enter\":t.preventDefault(),this.dropdown.selectOption.call(this,e);break;case\"Backspace\":if(\"mix\"==this.settings.mode||this.state.editing.scope)return;var o=this.input.value.trim();\"\"!=o&&8203!=o.charCodeAt(0)||(!0===this.settings.backspace?this.removeTags():\"edit\"==this.settings.backspace&&setTimeout(this.editTag.bind(this),0))}},onMouseOver:function(t){var e=t.target.closest(\".\"+this.settings.classNames.dropdownItem);e&&this.dropdown.highlightOption.call(this,e)},onMouseLeave:function(t){this.dropdown.highlightOption.call(this)},onClick:function(t){var e=this;if(0==t.button&&t.target!=this.DOM.dropdown){var i=t.target.closest(\".\"+this.settings.classNames.dropdownItem);this.state.actions.selectOption=!0,setTimeout((function(){return e.state.actions.selectOption=!1}),50),this.settings.hooks.suggestionClick(t,{tagify:this,suggestionElm:i}).then((function(){i&&e.dropdown.selectOption.call(e,i)})).catch((function(t){return t}))}},onScroll:function(t){var e=t.target,i=e.scrollTop/(e.scrollHeight-e.parentNode.clientHeight)*100;this.trigger(\"dropdown:scroll\",{percentage:Math.round(i)})}}},highlightOption:function(t,e){var i,s=this.settings.classNames.dropdownItemActive;if(this.state.ddItemElm&&(this.state.ddItemElm.classList.remove(s),this.state.ddItemElm.removeAttribute(\"aria-selected\")),!t)return this.state.ddItemData=null,this.state.ddItemElm=null,void this.input.autocomplete.suggest.call(this);i=this.suggestedListItems[this.getNodeIndex(t)],this.state.ddItemData=i,this.state.ddItemElm=t,t.classList.add(s),t.setAttribute(\"aria-selected\",!0),e&&(t.parentNode.scrollTop=t.clientHeight+t.offsetTop-t.parentNode.clientHeight),this.settings.autoComplete&&(this.input.autocomplete.suggest.call(this,i),this.dropdown.position.call(this))},selectOption:function(t){var e=this,i=this.settings.dropdown,a=i.clearOnSelect,n=i.closeOnSelect;if(!t)return this.addTags(this.input.value,!0),void(n&&this.dropdown.hide.call(this));var o=t.getAttribute(\"tagifySuggestionIdx\"),r=(o?this.suggestedListItems[+o]:\"\")||this.input.value;if(this.trigger(\"dropdown:select\",{data:r,elm:t}),this.state.editing?this.onEditTagDone(this.state.editing.scope,s(s(s({},this.state.editing.scope.__tagifyTagData),{},{value:r.value},r instanceof Object?r:{}),{},{__isValid:!0})):this.addTags([r],a),setTimeout((function(){e.DOM.input.focus(),e.toggleFocusClass(!0)})),n)return this.dropdown.hide.call(this);this.dropdown.refilter.call(this)},selectAll:function(){var t=this.settings.skipInvalid;return this.settings.skipInvalid=!0,this.addTags(this.settings.whitelist,!0),this.settings.skipInvalid=t,this.dropdown.hide.call(this),this},filterListItems:function(t){var e,i,s,a,n,o=this,l=this.settings,d=l.dropdown,c=[],g=l.whitelist,u=d.maxItems||1/0,p=d.searchKeys,f=0;if(!t||!p.length)return(l.duplicates?g:g.filter((function(t){return!o.isTagDuplicate(r(t)?t.value:t)}))).slice(0,u);function m(t,e){return e.toLowerCase().split(\" \").every((function(e){return t.includes(e.toLowerCase())}))}for(n=d.caseSensitive?\"\"+t:(\"\"+t).toLowerCase();f0&&void 0!==arguments[0])||arguments[0],i=this.events.callbacks,s=e?\"addEventListener\":\"removeEventListener\";if(!this.state.mainEvents||!e)for(var a in this.state.mainEvents=e,e&&!this.listeners.main&&(this.DOM.input.addEventListener(this.isIE?\"keydown\":\"input\",i[this.isIE?\"onInputIE\":\"onInput\"].bind(this)),this.settings.isJQueryPlugin&&jQuery(this.DOM.originalInput).on(\"tagify.removeAllTags\",this.removeAllTags.bind(this))),t=this.listeners.main=this.listeners.main||{focus:[\"input\",i.onFocusBlur.bind(this)],blur:[\"input\",i.onFocusBlur.bind(this)],keydown:[\"input\",i.onKeydown.bind(this)],click:[\"scope\",i.onClickScope.bind(this)],dblclick:[\"scope\",i.onDoubleClickScope.bind(this)],paste:[\"input\",i.onPaste.bind(this)]})(\"blur\"!=a||e)&&this.DOM[t[a][0]][s](a,t[a][1])},callbacks:{onFocusBlur:function(t){var e=t.target?this.trim(t.target.textContent):\"\",i=this.settings,s=t.type,a=i.dropdown.enabled>=0,n={relatedTarget:t.relatedTarget},o=this.state.actions.selectOption&&(a||!i.dropdown.closeOnSelect),r=this.state.actions.addNew&&a,l=window.getSelection();if(\"blur\"==s){if(t.relatedTarget===this.DOM.scope)return this.dropdown.hide.call(this),void this.DOM.input.focus();this.postUpdate(),this.triggerChangeEvent()}if(!o&&!r)if(this.state.hasFocus=\"focus\"==s&&+new Date,this.toggleFocusClass(this.state.hasFocus),\"mix\"!=i.mode){if(\"focus\"==s)return this.trigger(\"focus\",n),void(0===i.dropdown.enabled&&this.dropdown.show.call(this));\"blur\"==s&&(this.trigger(\"blur\",n),this.loading(!1),(\"select\"==this.settings.mode?!this.value.length||this.value[0].value!=e:e&&!this.state.actions.selectOption&&i.addTagOnBlur)&&this.addTags(e,!0)),this.DOM.input.removeAttribute(\"style\"),this.dropdown.hide.call(this)}else\"focus\"==s?this.trigger(\"focus\",n):\"blur\"==t.type&&(this.trigger(\"blur\",n),this.loading(!1),this.dropdown.hide.call(this),this.state.dropdown.visible=void 0,this.state.selection={anchorOffset:l.anchorOffset,anchorNode:l.anchorNode},l.getRangeAt&&l.rangeCount&&(this.state.selection.range=l.getRangeAt(0)))},onKeydown:function(t){var e=this,i=this.trim(t.target.textContent);if(this.trigger(\"keydown\",{originalEvent:this.cloneEvent(t)}),\"mix\"==this.settings.mode){switch(t.key){case\"Left\":case\"ArrowLeft\":this.state.actions.ArrowLeft=!0;break;case\"Delete\":case\"Backspace\":if(this.state.editing)return;var s=document.getSelection(),a=\"Delete\"==t.key&&s.anchorOffset==s.anchorNode.length,n=1==s.anchorNode.nodeType||!s.anchorOffset&&s.anchorNode.previousElementSibling,o=l(this.DOM.input.innerHTML),r=this.getTagElms();if(3==s.anchorNode.nodeType&&!s.anchorNode.nodeValue&&s.anchorNode.previousElementSibling&&t.preventDefault(),(n||a)&&!this.settings.backspace)return void t.preventDefault();setTimeout((function(){if(l(e.DOM.input.innerHTML).length>=o.length&&(e.removeTags(s.anchorNode.previousElementSibling),e.fixFirefoxLastTagNoCaret(),2==e.DOM.input.children.length&&\"BR\"==e.DOM.input.children[1].tagName))return e.DOM.input.innerHTML=\"\",e.value.length=0,!0;e.value=[].map.call(r,(function(t,i){var s=t.__tagifyTagData;if(t.parentNode)return s;e.trigger(\"remove\",{tag:t,index:i,data:s})})).filter((function(t){return t}))}),50)}return!0}switch(t.key){case\"Backspace\":this.state.dropdown.visible&&\"manual\"!=this.settings.dropdown.position||\"\"!=i&&8203!=i.charCodeAt(0)||(!0===this.settings.backspace?this.removeTags():\"edit\"==this.settings.backspace&&setTimeout(this.editTag.bind(this),0));break;case\"Esc\":case\"Escape\":if(this.state.dropdown.visible)return;t.target.blur();break;case\"Down\":case\"ArrowDown\":this.state.dropdown.visible||this.dropdown.show.call(this);break;case\"ArrowRight\":var d=this.state.inputSuggestion||this.state.ddItemData;if(d&&this.settings.autoComplete.rightKey)return void this.addTags([d],!0);break;case\"Tab\":if(i&&t.preventDefault(),!i||\"select\"==this.settings.mode)return!0;case\"Enter\":if(this.state.dropdown.visible||229==t.keyCode)return;t.preventDefault(),setTimeout((function(){e.state.actions.selectOption||e.addTags(i,!0)}))}},onInput:function(t){if(\"mix\"==this.settings.mode)return this.events.callbacks.onMixTagsInput.call(this,t);var e=this.input.normalize.call(this),i=e.length>=this.settings.dropdown.enabled,s={value:e,inputElm:this.DOM.input};s.isValid=this.validateTag({value:e}),this.trigger(\"input\",s),this.input.value!=e&&(this.input.set.call(this,e,!1),-1!=e.search(this.settings.delimiters)?this.addTags(e)&&this.input.set.call(this):this.settings.dropdown.enabled>=0&&this.dropdown[i?\"show\":\"hide\"].call(this,e))},onMixTagsInput:function(t){var e,i,s,a,n,o,r,l,d,h=this,g=this.settings,u=this.value.length,p=this.getTagElms(),f=[].map.call(p,(function(t){return h.tagData(t).value}));if(this.value.slice().forEach((function(t){t.readonly&&!f.includes(t.value)&&h.injectAtCaret(h.createTagElem(t),window.getSelection().getRangeAt(0))})),p.length!=u)return this.value=[].map.call(this.getTagElms(),(function(t){return t.__tagifyTagData})),void this.update({withoutChangeEvent:!0});if(this.hasMaxTags())return!0;if(window.getSelection&&(r=window.getSelection()).rangeCount>0&&3==r.anchorNode.nodeType){if((e=r.getRangeAt(0).cloneRange()).collapse(!0),e.setStart(r.focusNode,0),a=(i=e.toString().slice(0,e.endOffset)).split(g.pattern).length-1,(s=i.match(g.pattern))&&(n=i.slice(i.lastIndexOf(s[s.length-1]))),n){if(this.state.actions.ArrowLeft=!1,this.state.tag={prefix:n.match(g.pattern)[0],value:n.replace(g.pattern,\"\")},this.state.tag.baseOffset=r.baseOffset-this.state.tag.value.length,d=this.state.tag.value.match(g.delimiters))return this.state.tag.value=this.state.tag.value.replace(g.delimiters,\"\"),this.state.tag.delimiters=d[0],this.addTags(this.state.tag.value,g.dropdown.clearOnSelect),void this.dropdown.hide.call(this);o=this.state.tag.value.length>=g.dropdown.enabled;try{l=(l=this.state.flaggedTags[this.state.tag.baseOffset]).prefix==this.state.tag.prefix&&l.value[0]==this.state.tag.value[0],this.state.flaggedTags[this.state.tag.baseOffset]&&!this.state.tag.value&&delete this.state.flaggedTags[this.state.tag.baseOffset]}catch(t){}(l||a500)?this.state.dropdown.visible?this.dropdown.hide.call(this):0===i.dropdown.enabled&&\"mix\"!=i.mode&&this.dropdown.show.call(this):\"select\"==i.mode&&!this.state.dropdown.visible&&this.dropdown.show.call(this));this.removeTags(t.target.parentNode)}else this.state.hasFocus||this.DOM.input.focus()},onPaste:function(t){var e;t.preventDefault(),e=(t.clipboardData||window.clipboardData).getData(\"Text\"),\"mix\"==this.settings.mode?this.injectAtCaret(e,window.getSelection().getRangeAt(0)):this.addTags(e)},onEditTagInput:function(t,e){var i=t.closest(\".\"+this.settings.classNames.tag),s=this.getNodeIndex(i),a=this.tagData(i),n=this.input.normalize.call(this,t),o=n!=a.__originalData.value,r=this.validateTag({value:n});o||!0!==t.originalIsValid||(r=!0),i.classList.toggle(this.settings.classNames.tagInvalid,!0!==r),a.__isValid=r,i.title=!0===r?a.title||a.value:r,n.length>=this.settings.dropdown.enabled&&(this.state.editing.value=n,this.dropdown.show.call(this,n)),this.trigger(\"edit:input\",{tag:i,index:s,data:c({},this.value[s],{newValue:n}),originalEvent:this.cloneEvent(e)})},onEditTagFocus:function(t){this.state.editing={scope:t,input:t.querySelector(\"[contenteditable]\")}},onEditTagBlur:function(t){if(this.state.hasFocus||this.toggleFocusClass(),this.DOM.scope.contains(t)){var e=t.closest(\".\"+this.settings.classNames.tag),i=this.input.normalize.call(this,t),s=i,a=c({},this.tagData(e),{value:s}),n=s!=a.__originalData.value,o=this.validateTag(a);if(!i)return this.removeTags(e),void this.onEditTagDone(null,a);n?(this.settings.transformTag.call(this,a),!0===(o=this.validateTag(a))?(a=this.getWhitelistItemByValue(s)||a.__preInvalidData||{},a=Object.assign({},a,{value:s}),this.settings.transformTag.call(this,a),this.onEditTagDone(e,a)):this.trigger(\"invalid\",{data:a,tag:e,message:o})):this.onEditTagDone(e,a.__originalData)}},onEditTagkeydown:function(t,e){switch(this.trigger(\"edit:keydown\",{originalEvent:this.cloneEvent(t)}),t.key){case\"Esc\":case\"Escape\":t.target.textContent=e.__tagifyTagData.__originalData.value;case\"Enter\":case\"Tab\":t.preventDefault(),t.target.blur()}},onDoubleClickScope:function(t){var e,i,s=t.target.closest(\".\"+this.settings.classNames.tag),a=this.settings;s&&(e=s.classList.contains(this.settings.classNames.tagEditing),i=s.hasAttribute(\"readonly\"),\"select\"==a.mode||a.readonly||e||i||!this.settings.editTags||this.editTag(s),this.toggleFocusClass(!0),this.trigger(\"dblclick\",{tag:s,index:this.getNodeIndex(s),data:this.tagData(s)}))}}};function f(t,e){return t.previousElementSibling&&t.previousElementSibling.classList.contains(\"tagify\")?(console.warn(\"Tagify: \",\"input element is already Tagified\",t),this):t?(this.isFirefox=\"undefined\"!=typeof InstallTrigger,this.isIE=window.document.documentMode,this.applySettings(t,e||{}),this.state={editing:!1,actions:{},mixMode:{},dropdown:{},flaggedTags:{}},this.value=[],this.listeners={},this.DOM={},c(this,new this.EventDispatcher(this)),this.build(t),this.getCSSVars(),this.loadOriginalValues(),this.events.customBinding.call(this),this.events.binding.call(this),void(t.autofocus&&this.DOM.input.focus())):(console.warn(\"Tagify: \",\"invalid input element \",t),this)}return f.prototype={dropdown:g,TEXTS:{empty:\"empty\",exceed:\"number of tags exceeded\",pattern:\"pattern mismatch\",duplicate:\"already exists\",notAllowed:\"not allowed\"},DEFAULTS:u,customEventsList:[\"change\",\"add\",\"remove\",\"invalid\",\"input\",\"click\",\"keydown\",\"focus\",\"blur\",\"edit:input\",\"edit:updated\",\"edit:start\",\"edit:keydown\",\"dropdown:show\",\"dropdown:hide\",\"dropdown:select\",\"dropdown:updated\",\"dropdown:noMatch\"],trim:function(t){return this.settings.trim?t.trim():t},parseHTML:function(t){return(new DOMParser).parseFromString(t.trim(),\"text/html\").body.firstElementChild},templates:{wrapper:function(t,e){return'\\n \\n ')},tag:function(t){return'\\n \\n
\\n ').concat(t[this.settings.tagTextProp]||t.value,\"\\n
\\n
\")},dropdown:function(t){var e=t.dropdown,i=\"manual\"==e.position,s=\"\".concat(t.classNames.dropdown);return'
\\n
\\n
')},dropdownItem:function(t){return\"
').concat(t.value,\"
\")},dropdownItemNoMatch:null},parseTemplate:function(t,e){return t=this.settings.templates[t]||t,this.parseHTML(t.apply(this,e))},applySettings:function(t,e){this.DEFAULTS.templates=this.templates;var i=this.settings=c({},this.DEFAULTS,e);if(i.readonly=t.hasAttribute(\"readonly\"),i.placeholder=t.getAttribute(\"placeholder\")||i.placeholder||\"\",i.required=t.hasAttribute(\"required\"),this.isIE&&(i.autoComplete=!1),[\"whitelist\",\"blacklist\"].forEach((function(e){var s=t.getAttribute(\"data-\"+e);s&&(s=s.split(i.delimiters))instanceof Array&&(i[e]=s)})),\"autoComplete\"in e&&!r(e.autoComplete)&&(i.autoComplete=this.DEFAULTS.autoComplete,i.autoComplete.enabled=e.autoComplete),\"mix\"==i.mode&&(i.autoComplete.rightKey=!0,i.delimiters=e.delimiters||null),t.pattern)try{i.pattern=new RegExp(t.pattern)}catch(t){}if(this.settings.delimiters)try{i.delimiters=new RegExp(this.settings.delimiters,\"g\")}catch(t){}\"select\"==i.mode&&(i.dropdown.enabled=0),i.dropdown.appendTarget=e.dropdown&&e.dropdown.appendTarget?e.dropdown.appendTarget:document.body},getAttributes:function(t){if(\"[object Object]\"!=Object.prototype.toString.call(t))return\"\";var e,i,s=Object.keys(t),a=\"\";for(i=s.length;i--;)\"class\"!=(e=s[i])&&t.hasOwnProperty(e)&&void 0!==t[e]&&(a+=\" \"+e+(void 0!==t[e]?'=\"'.concat(t[e],'\"'):\"\"));return a},getCaretGlobalPosition:function(){var t=document.getSelection();if(t.rangeCount){var e,i,s=t.getRangeAt(0),a=s.startContainer,n=s.startOffset;if(n>0)return(i=document.createRange()).setStart(a,n-1),i.setEnd(a,n),{left:(e=i.getBoundingClientRect()).right,top:e.top,bottom:e.bottom};if(a.getBoundingClientRect)return a.getBoundingClientRect()}return{left:-9999,top:-9999}},getCSSVars:function(){var t,e=getComputedStyle(this.DOM.scope,null);this.CSSVars={tagHideTransition:function(t){var e=t.value;return\"s\"==t.unit?1e3*e:e}(function(t){if(!t)return{};var e=(t=t.trim().split(\" \")[0]).split(/\\d+/g).filter((function(t){return t})).pop().trim();return{value:+t.split(e).filter((function(t){return t}))[0].trim(),unit:e}}((t=\"tag-hide-transition\",e.getPropertyValue(\"--\"+t))))}},build:function(t){var e=this.DOM;this.settings.mixMode.integrated?(e.originalInput=null,e.scope=t,e.input=t):(e.originalInput=t,e.scope=this.parseTemplate(\"wrapper\",[t,this.settings]),e.input=e.scope.querySelector(\".\"+this.settings.classNames.input),t.parentNode.insertBefore(e.scope,t)),this.settings.dropdown.enabled>=0&&this.dropdown.init.call(this)},destroy:function(){this.DOM.scope.parentNode.removeChild(this.DOM.scope),this.dropdown.hide.call(this,!0),clearTimeout(this.dropdownHide__bindEventsTimeout)},loadOriginalValues:function(t){var e,i=this.settings;if(t=t||i.mixMode.integrated?this.DOM.input.textContent:this.DOM.originalInput.value)if(this.removeAllTags(),\"mix\"==i.mode)this.parseMixTags(t.trim()),(e=this.DOM.input.lastChild)&&\"BR\"==e.tagName||this.DOM.input.insertAdjacentHTML(\"beforeend\",\"
\");else{try{JSON.parse(t)instanceof Array&&(t=JSON.parse(t))}catch(t){}this.addTags(t).forEach((function(t){return t&&t.classList.add(i.classNames.tagNoAnimation)}))}else this.postUpdate();this.state.lastOriginalValueReported=i.mixMode.integrated?\"\":this.DOM.originalInput.value,this.state.loadedOriginalValues=!0},cloneEvent:function(t){var e={};for(var i in t)e[i]=t[i];return e},EventDispatcher:function(e){var i=document.createTextNode(\"\");function s(t,e,s){s&&e.split(/\\s+/g).forEach((function(e){return i[t+\"EventListener\"].call(i,e,s)}))}this.off=function(t,e){return s(\"remove\",t,e),this},this.on=function(t,e){return e&&\"function\"==typeof e&&s(\"add\",t,e),this},this.trigger=function(s,a){var n;if(s)if(e.settings.isJQueryPlugin)\"remove\"==s&&(s=\"removeTag\"),jQuery(e.DOM.originalInput).triggerHandler(s,[a]);else{try{var o=c({},\"object\"===t(a)?a:{value:a});if(o.tagify=this,a instanceof Object)for(var r in a)a[r]instanceof HTMLElement&&(o[r]=a[r]);n=new CustomEvent(s,{detail:o})}catch(t){console.warn(t)}i.dispatchEvent(n)}}},loading:function(t){return this.state.isLoading=t,this.DOM.scope.classList[t?\"add\":\"remove\"](this.settings.classNames.scopeLoading),this},tagLoading:function(t,e){return t&&t.classList[e?\"add\":\"remove\"](this.settings.classNames.tagLoading),this},toggleFocusClass:function(t){this.DOM.scope.classList.toggle(this.settings.classNames.focus,!!t)},triggerChangeEvent:function(){if(!this.settings.mixMode.integrated){var t=this.DOM.originalInput,e=this.state.lastOriginalValueReported!==t.value,i=new CustomEvent(\"change\",{bubbles:!0});e&&(this.state.lastOriginalValueReported=t.value,i.simulated=!0,t._valueTracker&&t._valueTracker.setValue(Math.random()),t.dispatchEvent(i),this.trigger(\"change\",this.state.lastOriginalValueReported),t.value=this.state.lastOriginalValueReported)}},events:p,fixFirefoxLastTagNoCaret:function(){var t=this.DOM.input;if(this.isFirefox&&t.childNodes.length&&1==t.lastChild.nodeType)return t.appendChild(document.createTextNode(\"​\")),this.setRangeAtStartEnd(!0),!0},placeCaretAfterNode:function(t){var e=t.nextSibling,i=window.getSelection(),s=i.getRangeAt(0);i.rangeCount&&(s.setStartBefore(e||t),s.setEndBefore(e||t),i.removeAllRanges(),i.addRange(s))},insertAfterTag:function(t,e){if(e=e||this.settings.mixMode.insertAfterTag,t&&e)return e=\"string\"==typeof e?document.createTextNode(e):e,t.appendChild(e),t.parentNode.insertBefore(e,t.nextSibling),e},editTag:function(t,e){var i=this;t=t||this.getLastTag(),e=e||{},this.dropdown.hide.call(this);var s=t.querySelector(\".\"+this.settings.classNames.tagText),a=this.getNodeIndex(t),n=t.__tagifyTagData,o=this.events.callbacks,r=this,l=!0;if(s){if(!(n instanceof Object&&\"editable\"in n)||n.editable)return t.__tagifyTagData.__originalData=c({},n),t.classList.add(this.settings.classNames.tagEditing),s.setAttribute(\"contenteditable\",!0),s.addEventListener(\"focus\",o.onEditTagFocus.bind(this,t)),s.addEventListener(\"blur\",(function(){setTimeout(o.onEditTagBlur.bind(r),0,s)})),s.addEventListener(\"input\",o.onEditTagInput.bind(this,s)),s.addEventListener(\"keydown\",(function(e){return o.onEditTagkeydown.call(i,e,t)})),s.focus(),this.setRangeAtStartEnd(!1,s),e.skipValidation||(l=this.editTagToggleValidity(t,n.value)),s.originalIsValid=l,this.trigger(\"edit:start\",{tag:t,index:a,data:n,isValid:l}),this}else console.warn(\"Cannot find element in Tag template: .\",this.settings.classNames.tagText)},editTagToggleValidity:function(t,e){var i,s=t.__tagifyTagData;if(s)return i=!(!s.__isValid||1==s.__isValid),t.classList.toggle(this.settings.classNames.tagInvalid,i),s.__isValid;console.warn(\"tag has no data: \",t,s)},onEditTagDone:function(t,e){this.state.editing=!1,e=e||{};var i={tag:t,index:this.getNodeIndex(t),data:e};this.trigger(\"edit:beforeUpdate\",i),delete e.__originalData,t&&(this.editTagToggleValidity(t),this.replaceTag(t,e)),this.trigger(\"edit:updated\",i),this.dropdown.hide.call(this),this.settings.keepInvalidTags&&this.reCheckInvalidTags()},replaceTag:function(t,e){e&&e.value||(e=t.__tagifyTagData),e.__isValid&&1!=e.__isValid&&c(e,this.getInvalidTagParams(e,e.__isValid));var i=this.createTagElem(e);t.parentNode.replaceChild(i,t),this.updateValueByDOMTags()},updateValueByDOMTags:function(){var t=this;this.value.length=0,[].forEach.call(this.getTagElms(),(function(e){e.classList.contains(t.settings.classNames.tagNotAllowed)||t.value.push(t.tagData(e))})),this.update()},setRangeAtStartEnd:function(t,e){t=\"number\"==typeof t?t:!!t,e=(e=e||this.DOM.input).lastChild||e;var i=document.getSelection();try{i.rangeCount>=1&&[\"Start\",\"End\"].forEach((function(s){return i.getRangeAt(0)[\"set\"+s](e,t||e.length)}))}catch(t){console.warn(\"Tagify: \",t)}},injectAtCaret:function(t,e){if(e=e||this.state.selection.range)return\"string\"==typeof t&&(t=document.createTextNode(t)),e.deleteContents(),e.insertNode(t),this.setRangeAtStartEnd(!1,t),this.updateValueByDOMTags(),this.update(),this},input:{value:\"\",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.settings.dropdown.closeOnSelect;this.input.value=t,e&&(this.DOM.input.innerHTML=t),!t&&i&&this.dropdown.hide.bind(this),this.input.autocomplete.suggest.call(this),this.input.validate.call(this)},validate:function(){var t=!this.input.value||!0===this.validateTag({value:this.input.value});return this.DOM.input.classList.toggle(this.settings.classNames.inputInvalid,!t),t},normalize:function(t){var e=t||this.DOM.input,i=[];e.childNodes.forEach((function(t){return 3==t.nodeType&&i.push(t.nodeValue)})),i=i.join(\"\\n\");try{i=i.replace(/(?:\\r\\n|\\r|\\n)/g,this.settings.delimiters.source.charAt(0))}catch(t){}return i=i.replace(/\\s/g,\" \"),this.settings.trim&&(i=i.replace(/^\\s+/,\"\")),i},autocomplete:{suggest:function(t){if(this.settings.autoComplete.enabled){\"string\"==typeof(t=t||{})&&(t={value:t});var e=t.value?\"\"+t.value:\"\",i=e.substr(0,this.input.value.length).toLowerCase(),s=e.substring(this.input.value.length);e&&this.input.value&&i==this.input.value.toLowerCase()?(this.DOM.input.setAttribute(\"data-suggest\",s),this.state.inputSuggestion=t):(this.DOM.input.removeAttribute(\"data-suggest\"),delete this.state.inputSuggestion)}},set:function(t){var e=this.DOM.input.getAttribute(\"data-suggest\"),i=t||(e?this.input.value+e:null);return!!i&&(\"mix\"==this.settings.mode?this.replaceTextWithNode(document.createTextNode(this.state.tag.prefix+i)):(this.input.set.call(this,i),this.setRangeAtStartEnd()),this.input.autocomplete.suggest.call(this),this.dropdown.hide.call(this),!0)}}},getTagIdx:function(t){return this.value.findIndex((function(e){return JSON.stringify(e)==JSON.stringify(t)}))},getNodeIndex:function(t){var e=0;if(t)for(;t=t.previousElementSibling;)e++;return e},getTagElms:function(){for(var t=arguments.length,e=new Array(t),i=0;i=this.settings.maxTags&&this.TEXTS.exceed},normalizeTags:function(t){var e=this,i=this.settings,s=i.whitelist,n=i.delimiters,o=i.mode,r=!!s&&s[0]instanceof Object,l=t instanceof Array,d=[],c=function(t){return(t+\"\").split(n).filter((function(t){return t})).map((function(t){return{value:e.trim(t)}}))};if(\"number\"==typeof t&&(t=t.toString()),\"string\"==typeof t){if(!t.trim())return[];t=c(t)}else if(l){var h;t=(h=[]).concat.apply(h,a(t.map((function(t){return t.value?t:c(t)}))))}return r&&(t.forEach((function(t){var i=e.getWhitelistItemByValue(t.value);i&&i instanceof Object?d.push(i):\"mix\"!=o&&d.push(t)})),d.length&&(t=d)),t},getWhitelistItemByValue:function(t){var e,i=this.settings;return i.whitelist.some((function(s){if(o(\"string\"==typeof s?s:s.value,t,i.dropdown.caseSensitive))return e=\"string\"==typeof s?{value:s}:s,!0})),e},parseMixTags:function(t){var e=this,i=this.settings,s=i.mixTagsInterpolator,a=i.duplicates,n=i.transformTag,o=i.enforceWhitelist,r=i.maxTags,l=[];return t=t.split(s[0]).map((function(t,i){var d,c,h=t.split(s[1]),g=h[0],u=l.length==r;try{if(g==+g)throw Error;d=JSON.parse(g)}catch(t){d=e.normalizeTags(g)[0]}if(u||!(h.length>1)||o&&!e.isTagWhitelisted(d.value)||!a&&e.isTagDuplicate(d.value)){if(t)return i?s[0]+t:t}else n.call(e,d),c=e.createTagElem(d),l.push(d),c.classList.add(e.settings.classNames.tagNoAnimation),h[0]=c.outerHTML,e.value.push(d);return h.join(\"\")})).join(\"\"),this.DOM.input.innerHTML=t,this.DOM.input.appendChild(document.createTextNode(\"\")),this.DOM.input.normalize(),this.getTagElms().forEach((function(t,i){return e.tagData(t,l[i])})),this.update({withoutChangeEvent:!0}),t},replaceTextWithNode:function(t,e){if(this.state.tag||e){e=e||this.state.tag.prefix+this.state.tag.value;var i,s,a=window.getSelection(),n=a.anchorNode,o=this.state.tag.delimiters?this.state.tag.delimiters.length:0;return n.splitText(a.anchorOffset-o),i=n.nodeValue.lastIndexOf(e),s=n.splitText(i),t&&n.parentNode.replaceChild(t,s),!0}},selectTag:function(t,e){if(!this.settings.enforceWhitelist||this.isTagWhitelisted(e.value))return this.input.set.call(this,e.value,!0),this.state.actions.selectOption&&setTimeout(this.setRangeAtStartEnd.bind(this)),this.getLastTag()?this.replaceTag(this.getLastTag(),e):this.appendTag(t),this.value[0]=e,this.trigger(\"add\",{tag:t,data:e}),this.update(),[t]},addEmptyTag:function(){var t={value:\"\"},e=this.createTagElem(t);this.tagData(e,t),this.appendTag(e),this.editTag(e,{skipValidation:!0})},addTags:function(t,e){var i=this,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.settings.skipInvalid,a=[],n=this.settings;return t&&0!=t.length?(t=this.normalizeTags(t),\"mix\"==n.mode?this.addMixTags(t):(\"select\"==n.mode&&(e=!1),this.DOM.input.removeAttribute(\"style\"),t.forEach((function(t){var e,o={},r=Object.assign({},t,{value:t.value+\"\"});if((t=Object.assign({},r)).__isValid=i.hasMaxTags()||i.validateTag(t),n.transformTag.call(i,t),!0!==t.__isValid){if(s)return;c(o,i.getInvalidTagParams(t,t.__isValid),{__preInvalidData:r}),t.__isValid==i.TEXTS.duplicate&&i.flashTag(i.getTagElmByValue(t.value))}if(t.readonly&&(o[\"aria-readonly\"]=!0),e=i.createTagElem(c({},t,o)),a.push(e),\"select\"==n.mode)return i.selectTag(e,t);i.appendTag(e),t.__isValid&&!0===t.__isValid?(i.value.push(t),i.update(),i.trigger(\"add\",{tag:e,index:i.value.length-1,data:t})):(i.trigger(\"invalid\",{data:t,index:i.value.length,tag:e,message:t.__isValid}),n.keepInvalidTags||setTimeout((function(){return i.removeTags(e,!0)}),1e3)),i.dropdown.position.call(i)})),t.length&&e&&this.input.set.call(this),this.dropdown.refilter.call(this),a)):(\"select\"==n.mode&&this.removeAllTags(),a)},addMixTags:function(t){var e,i=this,s=this.settings,a=this.state.tag.delimiters;return s.transformTag.call(this,t[0]),t[0].prefix=t[0].prefix||this.state.tag?this.state.tag.prefix:(s.pattern.source||s.pattern)[0],e=this.createTagElem(t[0]),this.replaceTextWithNode(e)||this.DOM.input.appendChild(e),setTimeout((function(){return e.classList.add(i.settings.classNames.tagNoAnimation)}),300),this.value.push(t[0]),this.update(),!a&&setTimeout((function(){var t=i.insertAfterTag(e)||e;i.placeCaretAfterNode(t)}),this.isFirefox?100:0),this.state.tag=null,this.trigger(\"add\",c({},{tag:e},{data:t[0]})),e},appendTag:function(t){var e=this.DOM.scope.lastElementChild;e===this.DOM.input?this.DOM.scope.insertBefore(t,e):this.DOM.scope.appendChild(t)},createTagElem:function(t){var e,i=c({},t,{value:d(t.value+\"\")});return this.settings.readonly&&(t.readonly=!0),e=this.parseTemplate(\"tag\",[i]),this.tagData(e,t),e},reCheckInvalidTags:function(){var t=this,e=this.settings,i=\".\".concat(e.classNames.tag,\".\").concat(e.classNames.tagNotAllowed),s=this.DOM.scope.querySelectorAll(i);[].forEach.call(s,(function(e){var i=t.tagData(e),s=e.getAttribute(\"title\")==t.TEXTS.duplicate,a=!0===t.validateTag(i);s&&a&&(i=i.__preInvalidData?i.__preInvalidData:{value:i.value},t.replaceTag(e,i))}))},removeTags:function(t,e,i){var s,a=this;t=t&&t instanceof HTMLElement?[t]:t instanceof Array?t:t?[t]:[this.getLastTag()],s=t.reduce((function(t,e){return e&&\"string\"==typeof e&&(e=a.getTagElmByValue(e)),e&&t.push({node:e,idx:a.getTagIdx(a.tagData(e)),data:a.tagData(e,{__removed:!0})}),t}),[]),i=\"number\"==typeof i?i:this.CSSVars.tagHideTransition,\"select\"==this.settings.mode&&(i=0,this.input.set.call(this)),1==s.length&&s[0].node.classList.contains(this.settings.classNames.tagNotAllowed)&&(e=!0),s.length&&this.settings.hooks.beforeRemoveTag(s,{tagify:this}).then((function(){function t(t){t.node.parentNode&&(t.node.parentNode.removeChild(t.node),e?this.settings.keepInvalidTags&&this.trigger(\"remove\",{tag:t.node,index:t.idx}):(this.trigger(\"remove\",{tag:t.node,index:t.idx,data:t.data}),this.dropdown.refilter.call(this),this.dropdown.position.call(this),this.DOM.input.normalize(),this.settings.keepInvalidTags&&this.reCheckInvalidTags()))}i&&i>10&&1==s.length?function(e){e.node.style.width=parseFloat(window.getComputedStyle(e.node).width)+\"px\",document.body.clientTop,e.node.classList.add(this.settings.classNames.tagHide),setTimeout(t.bind(this),i,e)}.call(a,s[0]):s.forEach(t.bind(a)),e||(s.forEach((function(t){var e=Object.assign({},t.data);delete e.__removed;var i=a.getTagIdx(e);i>-1&&a.value.splice(i,1)})),a.update())})).catch((function(t){}))},removeAllTags:function(){this.value=[],\"mix\"==this.settings.mode?this.DOM.input.innerHTML=\"\":Array.prototype.slice.call(this.getTagElms()).forEach((function(t){return t.parentNode.removeChild(t)})),this.dropdown.position.call(this),\"select\"==this.settings.mode&&this.input.set.call(this),this.update()},postUpdate:function(){var t=this.settings.classNames,e=\"mix\"==this.settings.mode?this.settings.mixMode.integrated?this.DOM.input.textContent:this.DOM.originalInput.value:this.value.length;this.DOM.scope.classList.toggle(t.hasMaxTags,this.value.length>=this.settings.maxTags),this.DOM.scope.classList.toggle(t.hasNoTags,!this.value.length),this.DOM.scope.classList.toggle(t.empty,!e)},update:function(t){var e,i,s=this.DOM.originalInput,a=(t||{}).withoutChangeEvent,n=(e=this.value,i=[\"__isValid\",\"__removed\"],e.map((function(t){var e={};for(var s in t)i.indexOf(s)<0&&(e[s]=t[s]);return e})));this.settings.mixMode.integrated||(s.value=\"mix\"==this.settings.mode?this.getMixedTagsAsString(n):n.length?this.settings.originalInputValueFormat?this.settings.originalInputValueFormat(n):JSON.stringify(n):\"\"),this.postUpdate(),!a&&this.state.loadedOriginalValues&&this.triggerChangeEvent()},getMixedTagsAsString:function(){var t=\"\",e=this,i=this.settings.mixTagsInterpolator;return function s(a){a.childNodes.forEach((function(a){if(1==a.nodeType){if(a.classList.contains(e.settings.classNames.tag)&&e.tagData(a)){if(e.tagData(a).__removed)return;return void(t+=i[0]+JSON.stringify(a.__tagifyTagData)+i[1])}\"BR\"!=a.tagName||a.parentNode!=e.DOM.input&&1!=a.parentNode.childNodes.length?\"DIV\"!=a.tagName&&\"P\"!=a.tagName||(t+=\"\\r\\n\",s(a)):t+=\"\\r\\n\"}else t+=a.textContent}))}(this.DOM.input),t}},f.prototype.removeTag=f.prototype.removeTags,f}));\n","'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + ' 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i