{"version":3,"file":"static/js/main.2a19c385.js","mappings":"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","sources":["../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-grid-system/build/config.js","../node_modules/react-grid-system/build/context/ScreenClassProvider/index.js","../node_modules/react-grid-system/build/context/ScreenClassResolver/index.js","../node_modules/react-grid-system/build/grid/Col/index.js","../node_modules/react-grid-system/build/grid/Col/style.js","../node_modules/react-grid-system/build/grid/Container/index.js","../node_modules/react-grid-system/build/grid/Container/style.js","../node_modules/react-grid-system/build/grid/Row/index.js","../node_modules/react-grid-system/build/grid/Row/style.js","../node_modules/react-grid-system/build/index.js","../node_modules/react-grid-system/build/primitives/Div/index.js","../node_modules/react-grid-system/build/primitives/Span/index.js","../node_modules/react-grid-system/build/primitives/Window/index.js","../node_modules/react-grid-system/build/primitives/index.js","../node_modules/react-grid-system/build/utilities/Hidden/index.js","../node_modules/react-grid-system/build/utilities/Hidden/style.js","../node_modules/react-grid-system/build/utilities/ScreenClassRender/index.js","../node_modules/react-grid-system/build/utilities/Visible/index.js","../node_modules/react-grid-system/build/utilities/Visible/style.js","../node_modules/react-grid-system/build/utils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/publicPath","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","utility.js","components/Modal.js","ModalContext.jsx","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/createClass.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/get.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/typeof.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/inherits.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/createSuper.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/construct.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../javascript/esm|C:/Users/Satpal/source/repos/soundPorpagationAppWebScaffold/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@svgdotjs/svg.js/src/utils/methods.js","../node_modules/@svgdotjs/svg.js/src/utils/utils.js","../node_modules/@svgdotjs/svg.js/src/modules/core/namespaces.js","../node_modules/@svgdotjs/svg.js/src/utils/window.js","../node_modules/@svgdotjs/svg.js/src/types/Base.js","../node_modules/@svgdotjs/svg.js/src/utils/adopter.js","../node_modules/@svgdotjs/svg.js/src/modules/optional/arrange.js","../node_modules/@svgdotjs/svg.js/src/modules/core/regex.js","../node_modules/@svgdotjs/svg.js/src/types/Color.js","../node_modules/@svgdotjs/svg.js/src/modules/optional/class.js","../node_modules/@svgdotjs/svg.js/src/modules/optional/css.js","../node_modules/@svgdotjs/svg.js/src/modules/optional/data.js","../node_modules/@svgdotjs/svg.js/src/modules/optional/memory.js","../node_modules/@svgdotjs/svg.js/src/types/Point.js","../node_modules/@svgdotjs/svg.js/src/types/Matrix.js","../node_modules/@svgdotjs/svg.js/src/modules/core/parser.js","../node_modules/@svgdotjs/svg.js/src/types/Box.js","../node_modules/@svgdotjs/svg.js/src/types/List.js","../node_modules/@svgdotjs/svg.js/src/modules/core/selector.js","../node_modules/@svgdotjs/svg.js/src/modules/core/event.js","../node_modules/@svgdotjs/svg.js/src/types/EventTarget.js","../node_modules/@svgdotjs/svg.js/src/modules/core/defaults.js","../node_modules/@svgdotjs/svg.js/src/types/SVGArray.js","../node_modules/@svgdotjs/svg.js/src/types/SVGNumber.js","../node_modules/@svgdotjs/svg.js/src/modules/core/attr.js","../node_modules/@svgdotjs/svg.js/src/elements/Dom.js","../node_modules/@svgdotjs/svg.js/src/elements/Element.js","../node_modules/@svgdotjs/svg.js/src/modules/optional/sugar.js","../node_modules/@svgdotjs/svg.js/src/modules/optional/transform.js","../node_modules/@svgdotjs/svg.js/src/elements/Container.js","../node_modules/@svgdotjs/svg.js/src/elements/Defs.js","../node_modules/@svgdotjs/svg.js/src/elements/Shape.js","../node_modules/@svgdotjs/svg.js/src/modules/core/circled.js","../node_modules/@svgdotjs/svg.js/src/elements/Ellipse.js","../node_modules/@svgdotjs/svg.js/src/elements/Fragment.js","../node_modules/@svgdotjs/svg.js/src/modules/core/gradiented.js","../node_modules/@svgdotjs/svg.js/src/elements/Gradient.js","../node_modules/@svgdotjs/svg.js/src/elements/Pattern.js","../node_modules/@svgdotjs/svg.js/src/elements/Image.js","../node_modules/@svgdotjs/svg.js/src/types/PointArray.js","../node_modules/@svgdotjs/svg.js/src/modules/core/pointed.js","../node_modules/@svgdotjs/svg.js/src/elements/Line.js","../node_modules/@svgdotjs/svg.js/src/elements/Marker.js","../node_modules/@svgdotjs/svg.js/src/animation/Controller.js","../node_modules/@svgdotjs/svg.js/src/utils/pathParser.js","../node_modules/@svgdotjs/svg.js/src/types/PathArray.js","../node_modules/@svgdotjs/svg.js/src/animation/Morphable.js","../node_modules/@svgdotjs/svg.js/src/elements/Path.js","../node_modules/@svgdotjs/svg.js/src/modules/core/poly.js","../node_modules/@svgdotjs/svg.js/src/elements/Polygon.js","../node_modules/@svgdotjs/svg.js/src/elements/Polyline.js","../node_modules/@svgdotjs/svg.js/src/elements/Rect.js","../node_modules/@svgdotjs/svg.js/src/animation/Queue.js","../node_modules/@svgdotjs/svg.js/src/animation/Animator.js","../node_modules/@svgdotjs/svg.js/src/animation/Timeline.js","../node_modules/@svgdotjs/svg.js/src/animation/Runner.js","../node_modules/@svgdotjs/svg.js/src/elements/Svg.js","../node_modules/@svgdotjs/svg.js/src/elements/Symbol.js","../node_modules/@svgdotjs/svg.js/src/modules/core/textable.js","../node_modules/@svgdotjs/svg.js/src/elements/Text.js","../node_modules/@svgdotjs/svg.js/src/elements/Tspan.js","../node_modules/@svgdotjs/svg.js/src/elements/Circle.js","../node_modules/@svgdotjs/svg.js/src/elements/ClipPath.js","../node_modules/@svgdotjs/svg.js/src/elements/ForeignObject.js","../node_modules/@svgdotjs/svg.js/src/modules/core/containerGeometry.js","../node_modules/@svgdotjs/svg.js/src/elements/G.js","../node_modules/@svgdotjs/svg.js/src/elements/A.js","../node_modules/@svgdotjs/svg.js/src/elements/Mask.js","../node_modules/@svgdotjs/svg.js/src/elements/Stop.js","../node_modules/@svgdotjs/svg.js/src/elements/Style.js","../node_modules/@svgdotjs/svg.js/src/elements/TextPath.js","../node_modules/@svgdotjs/svg.js/src/elements/Use.js","../node_modules/@svgdotjs/svg.js/src/main.js","../node_modules/@svgdotjs/svg.draggable.js/src/svg.draggable.js","../node_modules/zustand/esm/index.js","store/store.js","components/imgs/toolTipIcon.svg","components/ToolTipIcon.jsx","components/Controllers.js","components/Detail.js","components/panels/SoundPowerDB.jsx","components/panels/SoundPowerOctaves.jsx","components/panels/MeasureDbPanel.jsx","components/panels/MeasuredOctaves.jsx","components/panels/RightPanel.jsx","components/Multiband.js","components/graph/common/HeightRuler.jsx","components/graph/Source.jsx","components/graph/Receiver.jsx","components/graph/Line.jsx","components/graph/FirstBarrier.jsx","components/graph/SecondBarrier.jsx","components/graph/BuildingBarrier.jsx","components/graph/common/Shadows.jsx","components/graph/Ground.jsx","components/graph/Grid.jsx","components/SoundTool.jsx","pages/Home.jsx","App.jsx","index.jsx"],"sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar NO_PROVIDER_FLAG = 'NO_PROVIDER_FLAG';\nexports.NO_PROVIDER_FLAG = NO_PROVIDER_FLAG;\n\nvar ScreenClassContext = /*#__PURE__*/_react.default.createContext(NO_PROVIDER_FLAG);\n\nexports.ScreenClassContext = ScreenClassContext;\n\nvar ScreenClassProvider = function ScreenClassProvider(_ref) {\n var useOwnWidth = _ref.useOwnWidth,\n children = _ref.children,\n fallbackScreenClass = _ref.fallbackScreenClass;\n var screenClassRef = (0, _react.useRef)();\n\n var _useState = (0, _react.useState)(false),\n _useState2 = _slicedToArray(_useState, 2),\n mounted = _useState2[0],\n setMounted = _useState2[1];\n\n var detectedScreenClass = (0, _utils.useScreenClass)(screenClassRef, fallbackScreenClass);\n\n var _getConfiguration = (0, _config.getConfiguration)(),\n defaultScreenClass = _getConfiguration.defaultScreenClass;\n\n var screenClass = mounted ? detectedScreenClass : fallbackScreenClass || defaultScreenClass;\n (0, _react.useEffect)(function () {\n return setMounted(true);\n }, []);\n return /*#__PURE__*/_react.default.createElement(ScreenClassContext.Provider, {\n value: screenClass\n }, useOwnWidth ? /*#__PURE__*/_react.default.createElement(_primitives.Div, {\n ref: useOwnWidth ? screenClassRef : null\n }, children) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children));\n};\n\nScreenClassProvider.propTypes = {\n /**\n * Children of the ScreenClassProvider.\n * This should be all your child React nodes that are using `react-grid-system`.\n */\n children: _propTypes.default.node.isRequired,\n\n /**\n * Boolean to determine whether own width should be used as source.\n * When provided, the screen class is derived from own dimensions instead of the window.\n */\n useOwnWidth: _propTypes.default.bool,\n\n /**\n * Screen class to use when it cannot be determined otherwise.\n * Useful for server side rendering.\n */\n fallbackScreenClass: _propTypes.default.oneOf([null, 'xs', 'sm', 'md', 'lg', 'xl', 'xxl'])\n};\nScreenClassProvider.defaultProps = {\n useOwnWidth: false,\n fallbackScreenClass: null\n};\nvar _default = ScreenClassProvider;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ScreenClassProvider = _interopRequireWildcard(require(\"../ScreenClassProvider\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ScreenClassResolver = function ScreenClassResolver(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/_react.default.createElement(_ScreenClassProvider.ScreenClassContext.Consumer, null, function (screenClassCheck) {\n if (screenClassCheck === _ScreenClassProvider.NO_PROVIDER_FLAG) {\n return /*#__PURE__*/_react.default.createElement(_ScreenClassProvider.default, null, /*#__PURE__*/_react.default.createElement(_ScreenClassProvider.ScreenClassContext.Consumer, null, function (screenClassResolved) {\n return children(screenClassResolved);\n }));\n }\n\n return children(screenClassCheck);\n });\n};\n\nScreenClassResolver.propTypes = {\n children: _propTypes.default.func.isRequired\n};\nvar _default = ScreenClassResolver;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _config = require(\"../../config\");\n\nvar _Row = require(\"../Row\");\n\nvar _ScreenClassResolver = _interopRequireDefault(require(\"../../context/ScreenClassResolver\"));\n\nvar _primitives = require(\"../../primitives\");\n\nvar _excluded = [\"children\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"xxl\", \"offset\", \"pull\", \"push\", \"debug\", \"style\", \"component\", \"width\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar Col = function Col(_ref) {\n var children = _ref.children,\n xs = _ref.xs,\n sm = _ref.sm,\n md = _ref.md,\n lg = _ref.lg,\n xl = _ref.xl,\n xxl = _ref.xxl,\n offset = _ref.offset,\n pull = _ref.pull,\n push = _ref.push,\n debug = _ref.debug,\n style = _ref.style,\n component = _ref.component,\n width = _ref.width,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/_react.default.createElement(_ScreenClassResolver.default, null, function (screenClass) {\n return /*#__PURE__*/_react.default.createElement(_Row.GutterWidthContext.Consumer, null, function (gutterWidth) {\n var theStyle = (0, _style.default)({\n forceWidth: width,\n width: {\n xs: xs,\n sm: sm,\n md: md,\n lg: lg,\n xl: xl,\n xxl: xxl\n },\n offset: offset,\n pull: pull,\n push: push,\n debug: debug,\n screenClass: screenClass,\n gutterWidth: gutterWidth,\n gridColumns: (0, _config.getConfiguration)().gridColumns,\n moreStyle: style\n });\n return /*#__PURE__*/(0, _react.createElement)(component, _objectSpread(_objectSpread({\n style: theStyle\n }, otherProps), {}, {\n children: children\n }));\n });\n });\n};\n\nCol.propTypes = {\n /**\n * Content of the column\n */\n children: _propTypes.default.node,\n\n /**\n * The width of the column for screenclass `xs`, either a number between 0 and 12, or \"content\"\n */\n xs: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['content'])]),\n\n /**\n * The width of the column for screenclass `sm`, either a number between 0 and 12, or \"content\"\n */\n sm: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['content'])]),\n\n /**\n * The width of the column for screenclass `md`, either a number between 0 and 12, or \"content\"\n */\n md: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['content'])]),\n\n /**\n * The width of the column for screenclass `lg`, either a number between 0 and 12, or \"content\"\n */\n lg: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['content'])]),\n\n /**\n * The width of the column for screenclass `xl`, either a number between 0 and 12, or \"content\"\n */\n xl: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['content'])]),\n\n /**\n * The width of the column for screenclass `xxl`, either a number between 0 and 12, or \"content\"\n */\n xxl: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.oneOf(['content'])]),\n\n /**\n * A fixed width of the column for all screenclasses\"\n */\n width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n\n /**\n * The offset of this column for all screenclasses\n */\n offset: _propTypes.default.shape({\n xs: _propTypes.default.number,\n sm: _propTypes.default.number,\n md: _propTypes.default.number,\n lg: _propTypes.default.number,\n xl: _propTypes.default.number,\n xxl: _propTypes.default.number\n }),\n\n /**\n * The amount this column is pushed to the right for all screenclasses\n */\n push: _propTypes.default.shape({\n xs: _propTypes.default.number,\n sm: _propTypes.default.number,\n md: _propTypes.default.number,\n lg: _propTypes.default.number,\n xl: _propTypes.default.number,\n xxl: _propTypes.default.number\n }),\n\n /**\n * The amount this column is pulled to the left for all screenclasses\n */\n pull: _propTypes.default.shape({\n xs: _propTypes.default.number,\n sm: _propTypes.default.number,\n md: _propTypes.default.number,\n lg: _propTypes.default.number,\n xl: _propTypes.default.number,\n xxl: _propTypes.default.number\n }),\n\n /**\n * Optional styling\n */\n style: _propTypes.default.objectOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])),\n\n /**\n * Set to apply some debug styling\n */\n debug: _propTypes.default.bool,\n\n /**\n * Use your own component\n */\n component: _propTypes.default.elementType\n};\nCol.defaultProps = {\n children: null,\n xs: null,\n sm: null,\n md: null,\n lg: null,\n xl: null,\n xxl: null,\n width: null,\n offset: {},\n push: {},\n pull: {},\n style: {},\n debug: false,\n component: _primitives.Div\n};\nvar _default = Col;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _utils = require(\"../../utils\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar hasWidth = function hasWidth(widths) {\n return Object.keys(widths).reduce(function (acc, cur) {\n return acc || widths[cur];\n }, false);\n};\n\nvar getWidth = function getWidth(width, gridColumns) {\n if (typeof width !== 'number') return undefined;\n var normalizedWidth = Math.max(0, Math.min(gridColumns, width));\n return \"\".concat(100 / gridColumns * normalizedWidth, \"%\");\n};\n\nvar _default = function _default(_ref) {\n var _ref$forceWidth = _ref.forceWidth,\n forceWidth = _ref$forceWidth === void 0 ? null : _ref$forceWidth,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? {} : _ref$width,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? {} : _ref$offset,\n _ref$pull = _ref.pull,\n pull = _ref$pull === void 0 ? {} : _ref$pull,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? {} : _ref$push,\n debug = _ref.debug,\n screenClass = _ref.screenClass,\n gutterWidth = _ref.gutterWidth,\n moreStyle = _ref.moreStyle,\n gridColumns = _ref.gridColumns;\n var styles = {\n boxSizing: 'border-box',\n minHeight: 1,\n position: 'relative',\n paddingLeft: gutterWidth / 2,\n paddingRight: gutterWidth / 2,\n width: '100%'\n };\n\n if (debug) {\n styles.outline = '1px solid silver';\n styles.background = 'rgba(0,0,0,.05)';\n styles.lineHeight = '32px';\n }\n\n styles.flexBasis = '100%';\n styles.flexGrow = 0;\n styles.flexShrink = 0;\n styles.maxWidth = '100%';\n styles.marginLeft = '0%';\n styles.right = 'auto';\n styles.left = 'auto';\n\n _utils.screenClasses.forEach(function (size, index) {\n if (_utils.screenClasses.indexOf(screenClass) >= index) {\n var currentWidth = getWidth(width[size], gridColumns);\n var isSizedToContent = width[size] === 'content';\n styles.flexBasis = isSizedToContent ? 'auto' : currentWidth || styles.flexBasis;\n styles.width = styles.flexBasis;\n styles.maxWidth = currentWidth || styles.maxWidth;\n styles.marginLeft = getWidth(offset[size], gridColumns) || styles.marginLeft;\n styles.right = getWidth(pull[size], gridColumns) || styles.right;\n styles.left = getWidth(push[size], gridColumns) || styles.left;\n }\n });\n\n if (!hasWidth(width)) {\n styles.flexBasis = 0;\n styles.flexGrow = 1;\n }\n\n if (forceWidth) {\n styles.flexBasis = 'unset';\n styles.flexGrow = 'unset';\n styles.flexShrink = 'unset';\n styles.width = forceWidth;\n }\n\n return _objectSpread(_objectSpread({}, styles), moreStyle);\n};\n\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _config = require(\"../../config\");\n\nvar _ScreenClassResolver = _interopRequireDefault(require(\"../../context/ScreenClassResolver\"));\n\nvar _primitives = require(\"../../primitives\");\n\nvar _excluded = [\"children\", \"fluid\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"xxl\", \"style\", \"component\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar Container = function Container(_ref) {\n var children = _ref.children,\n fluid = _ref.fluid,\n xs = _ref.xs,\n sm = _ref.sm,\n md = _ref.md,\n lg = _ref.lg,\n xl = _ref.xl,\n xxl = _ref.xxl,\n style = _ref.style,\n component = _ref.component,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/_react.default.createElement(_ScreenClassResolver.default, null, function (screenClass) {\n return /*#__PURE__*/(0, _react.createElement)(component, _objectSpread({\n style: (0, _style.default)({\n fluid: fluid,\n xs: xs,\n sm: sm,\n md: md,\n lg: lg,\n xl: xl,\n xxl: xxl,\n screenClass: screenClass,\n containerWidths: (0, _config.getConfiguration)().containerWidths,\n gutterWidth: (0, _config.getConfiguration)().gutterWidth,\n moreStyle: style\n })\n }, otherProps), children);\n });\n};\n\nContainer.propTypes = {\n /**\n * Content of the component\n */\n children: _propTypes.default.node.isRequired,\n\n /**\n * True makes the container full-width, false fixed-width\n */\n fluid: _propTypes.default.bool,\n\n /**\n * This is in combination with fluid enabled\n * True makes container fluid only in xs, not present means fluid everywhere\n */\n xs: _propTypes.default.bool,\n\n /**\n * This is in combination with fluid enabled\n * True makes container fluid only in sm, not present means fluid everywhere\n */\n sm: _propTypes.default.bool,\n\n /**\n * This is in combination with fluid enabled\n * True makes container fluid only in md, not present means fluid everywhere\n */\n md: _propTypes.default.bool,\n\n /**\n * This is in combination with fluid enabled\n * True makes container fluid only in lg, not present means fluid everywhere\n */\n lg: _propTypes.default.bool,\n\n /**\n * This is in combination with fluid enabled\n * True makes container fluid only in xl, not present means fluid everywhere\n */\n xl: _propTypes.default.bool,\n\n /**\n * This is in combination with fluid enabled\n * True makes container fluid only in xxl, not present means fluid everywhere\n */\n xxl: _propTypes.default.bool,\n\n /**\n * Optional styling\n */\n style: _propTypes.default.objectOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])),\n\n /**\n * Use your own component\n */\n component: _propTypes.default.elementType\n};\nContainer.defaultProps = {\n fluid: false,\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false,\n style: {},\n component: _primitives.Div\n};\nvar _default = Container;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = function _default(_ref) {\n var fluid = _ref.fluid,\n xs = _ref.xs,\n sm = _ref.sm,\n md = _ref.md,\n lg = _ref.lg,\n xl = _ref.xl,\n xxl = _ref.xxl,\n screenClass = _ref.screenClass,\n containerWidths = _ref.containerWidths,\n gutterWidth = _ref.gutterWidth,\n moreStyle = _ref.moreStyle;\n var styles = {\n boxSizing: 'border-box',\n position: 'relative',\n marginLeft: 'auto',\n marginRight: 'auto',\n paddingLeft: gutterWidth / 2,\n paddingRight: gutterWidth / 2\n };\n\n if (fluid && !xs && !sm && !md && !lg && !xl) {\n return _objectSpread(_objectSpread({}, styles), moreStyle);\n }\n\n if (screenClass === 'xs' && containerWidths[0] && !xs) {\n styles.maxWidth = containerWidths[0];\n }\n\n if (screenClass === 'sm' && containerWidths[0] && !sm) {\n styles.maxWidth = containerWidths[0];\n }\n\n if (screenClass === 'md' && containerWidths[1] && !md) {\n styles.maxWidth = containerWidths[1];\n }\n\n if (screenClass === 'lg' && containerWidths[2] && !lg) {\n styles.maxWidth = containerWidths[2];\n }\n\n if (screenClass === 'xl' && containerWidths[3] && !xl) {\n styles.maxWidth = containerWidths[3];\n }\n\n if (screenClass === 'xxl' && containerWidths[4] && !xxl) {\n styles.maxWidth = containerWidths[4];\n }\n\n return _objectSpread(_objectSpread({}, styles), moreStyle);\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.GutterWidthContext = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _config = require(\"../../config\");\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _primitives = require(\"../../primitives\");\n\nvar _excluded = [\"children\", \"style\", \"align\", \"justify\", \"wrap\", \"debug\", \"nogutter\", \"gutterWidth\", \"component\", \"direction\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar GutterWidthContext = /*#__PURE__*/_react.default.createContext(false);\n\nexports.GutterWidthContext = GutterWidthContext;\n\nvar Row = function Row(_ref) {\n var children = _ref.children,\n style = _ref.style,\n align = _ref.align,\n justify = _ref.justify,\n wrap = _ref.wrap,\n debug = _ref.debug,\n nogutter = _ref.nogutter,\n gutterWidth = _ref.gutterWidth,\n component = _ref.component,\n direction = _ref.direction,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n var theGutterWidth = (0, _config.getConfiguration)().gutterWidth;\n if (nogutter) theGutterWidth = 0;\n if (typeof gutterWidth === 'number') theGutterWidth = gutterWidth;\n var theStyle = (0, _style.default)({\n gutterWidth: theGutterWidth,\n align: align,\n justify: justify,\n debug: debug,\n moreStyle: style,\n direction: direction,\n wrap: wrap\n });\n return /*#__PURE__*/_react.default.createElement(component, _objectSpread({\n style: theStyle\n }, otherProps), /*#__PURE__*/_react.default.createElement(GutterWidthContext.Provider, {\n value: theGutterWidth\n }, children));\n};\n\nRow.propTypes = {\n /**\n * Content of the element\n */\n children: _propTypes.default.node.isRequired,\n\n /**\n * Vertical column alignment\n */\n align: _propTypes.default.oneOf(['normal', 'start', 'center', 'end', 'stretch']),\n\n /**\n * Horizontal column alignment\n */\n justify: _propTypes.default.oneOf(['start', 'center', 'end', 'between', 'around', 'initial', 'inherit']),\n\n /**\n * flex-direction style attribute\n */\n direction: _propTypes.default.oneOf(['column', 'row', 'column-reverse', 'row-reverse']),\n\n /**\n * flex-wrap style attribute\n */\n wrap: _propTypes.default.oneOf(['nowrap', 'wrap', 'reverse']),\n\n /**\n * No gutter for this row\n */\n nogutter: _propTypes.default.bool,\n\n /**\n * Custom gutter width for this row\n */\n gutterWidth: _propTypes.default.number,\n\n /**\n * Optional styling\n */\n style: _propTypes.default.objectOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])),\n\n /**\n * Set to apply some debug styling\n */\n debug: _propTypes.default.bool,\n\n /**\n * Use your own component\n */\n component: _propTypes.default.elementType\n};\nRow.defaultProps = {\n align: 'normal',\n justify: 'start',\n direction: 'row',\n wrap: 'wrap',\n nogutter: false,\n gutterWidth: null,\n style: {},\n debug: false,\n component: _primitives.Div\n};\nvar _default = Row;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = function _default(_ref) {\n var gutterWidth = _ref.gutterWidth,\n align = _ref.align,\n justify = _ref.justify,\n debug = _ref.debug,\n moreStyle = _ref.moreStyle,\n direction = _ref.direction,\n wrap = _ref.wrap;\n // Vertical alignment\n var alignItems = align;\n if (align === 'start') alignItems = 'flex-start';\n if (align === 'end') alignItems = 'flex-end'; // Horizontal alignment\n\n var justifyContent = justify;\n if (justify === 'start') justifyContent = 'flex-start';\n if (justify === 'end') justifyContent = 'flex-end';\n if (justify === 'between') justifyContent = 'space-between';\n if (justify === 'around') justifyContent = 'space-around';\n if (justify === 'center') justifyContent = 'center';\n if (justify === 'initial') justifyContent = 'initial';\n if (justify === 'inherit') justifyContent = 'inherit';\n var flexDirection = ['column', 'row', 'column-reverse', 'row-reverse'].includes(direction) ? direction : undefined;\n var flexWrap = wrap;\n if (wrap === 'nowrap') flexWrap = 'nowrap';\n if (wrap === 'wrap') flexWrap = 'wrap';\n if (wrap === 'reverse') flexWrap = 'wrap-reverse';\n var styles = {\n marginLeft: -gutterWidth / 2,\n marginRight: -gutterWidth / 2,\n display: 'flex',\n flexGrow: 0,\n flexShrink: 0,\n alignItems: alignItems,\n justifyContent: justifyContent,\n flexDirection: flexDirection,\n flexWrap: flexWrap\n };\n\n if (debug) {\n styles.background = 'rgba(128,128,128,.05)';\n }\n\n return _objectSpread(_objectSpread({}, styles), moreStyle);\n};\n\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Col\", {\n enumerable: true,\n get: function get() {\n return _Col.default;\n }\n});\nObject.defineProperty(exports, \"Container\", {\n enumerable: true,\n get: function get() {\n return _Container.default;\n }\n});\nObject.defineProperty(exports, \"Hidden\", {\n enumerable: true,\n get: function get() {\n return _Hidden.default;\n }\n});\nObject.defineProperty(exports, \"Row\", {\n enumerable: true,\n get: function get() {\n return _Row.default;\n }\n});\nObject.defineProperty(exports, \"ScreenClassContext\", {\n enumerable: true,\n get: function get() {\n return _ScreenClassProvider.ScreenClassContext;\n }\n});\nObject.defineProperty(exports, \"ScreenClassProvider\", {\n enumerable: true,\n get: function get() {\n return _ScreenClassProvider.default;\n }\n});\nObject.defineProperty(exports, \"ScreenClassRender\", {\n enumerable: true,\n get: function get() {\n return _ScreenClassRender.default;\n }\n});\nObject.defineProperty(exports, \"Visible\", {\n enumerable: true,\n get: function get() {\n return _Visible.default;\n }\n});\nObject.defineProperty(exports, \"setConfiguration\", {\n enumerable: true,\n get: function get() {\n return _config.setConfiguration;\n }\n});\nObject.defineProperty(exports, \"useScreenClass\", {\n enumerable: true,\n get: function get() {\n return _utils.useScreenClass;\n }\n});\n\nvar _Col = _interopRequireDefault(require(\"./grid/Col\"));\n\nvar _Container = _interopRequireDefault(require(\"./grid/Container\"));\n\nvar _Row = _interopRequireDefault(require(\"./grid/Row\"));\n\nvar _Hidden = _interopRequireDefault(require(\"./utilities/Hidden\"));\n\nvar _Visible = _interopRequireDefault(require(\"./utilities/Visible\"));\n\nvar _ScreenClassRender = _interopRequireDefault(require(\"./utilities/ScreenClassRender\"));\n\nvar _ScreenClassProvider = _interopRequireWildcard(require(\"./context/ScreenClassProvider\"));\n\nvar _config = require(\"./config\");\n\nvar _utils = require(\"./utils\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = 'div';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = 'span';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/* global window */\nvar _default = typeof window !== 'undefined' ? window : undefined;\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Div\", {\n enumerable: true,\n get: function get() {\n return _Div.default;\n }\n});\nObject.defineProperty(exports, \"Span\", {\n enumerable: true,\n get: function get() {\n return _Span.default;\n }\n});\nObject.defineProperty(exports, \"Window\", {\n enumerable: true,\n get: function get() {\n return _Window.default;\n }\n});\n\nvar _Div = _interopRequireDefault(require(\"./Div\"));\n\nvar _Span = _interopRequireDefault(require(\"./Span\"));\n\nvar _Window = _interopRequireDefault(require(\"./Window\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar style = _interopRequireWildcard(require(\"./style\"));\n\nvar _ScreenClassResolver = _interopRequireDefault(require(\"../../context/ScreenClassResolver\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Hidden = function Hidden(_ref) {\n var children = _ref.children,\n xs = _ref.xs,\n sm = _ref.sm,\n md = _ref.md,\n lg = _ref.lg,\n xl = _ref.xl,\n xxl = _ref.xxl;\n return /*#__PURE__*/_react.default.createElement(_ScreenClassResolver.default, null, function (screenClass) {\n return style.hidden({\n screenClass: screenClass,\n xs: xs,\n sm: sm,\n md: md,\n lg: lg,\n xl: xl,\n xxl: xxl\n }) ? null : children;\n });\n};\n\nHidden.propTypes = {\n /**\n * Content of the component\n */\n children: _propTypes.default.node.isRequired,\n\n /**\n * Hide on extra small devices\n */\n xs: _propTypes.default.bool,\n\n /**\n * Hide on small devices\n */\n sm: _propTypes.default.bool,\n\n /**\n * Hide on medium devices\n */\n md: _propTypes.default.bool,\n\n /**\n * Hide on large devices\n */\n lg: _propTypes.default.bool,\n\n /**\n * Hide on xlarge devices\n */\n xl: _propTypes.default.bool,\n\n /**\n * Hide on xxlarge devices\n */\n xxl: _propTypes.default.bool\n};\nHidden.defaultProps = {\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false\n};\nvar _default = Hidden;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hidden = exports.default = void 0;\n\nvar hidden = function hidden(_ref) {\n var screenClass = _ref.screenClass,\n xs = _ref.xs,\n sm = _ref.sm,\n md = _ref.md,\n lg = _ref.lg,\n xl = _ref.xl,\n xxl = _ref.xxl;\n if (screenClass === 'xxl') return xxl;\n if (screenClass === 'xl') return xl;\n if (screenClass === 'lg') return lg;\n if (screenClass === 'md') return md;\n if (screenClass === 'sm') return sm;\n return xs;\n};\n\nexports.hidden = hidden;\nvar _default = hidden;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ScreenClassResolver = _interopRequireDefault(require(\"../../context/ScreenClassResolver\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ScreenClassRender = function ScreenClassRender(_ref) {\n var render = _ref.render;\n return /*#__PURE__*/_react.default.createElement(_ScreenClassResolver.default, null, function (screenClass) {\n return render(screenClass);\n });\n};\n\nScreenClassRender.propTypes = {\n /**\n * The function which return value will be rendered.\n * Will be called with one argument: the screen class.\n */\n render: _propTypes.default.func.isRequired\n};\nvar _default = ScreenClassRender;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar style = _interopRequireWildcard(require(\"./style\"));\n\nvar _ScreenClassResolver = _interopRequireDefault(require(\"../../context/ScreenClassResolver\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Visible = function Visible(_ref) {\n var children = _ref.children,\n xs = _ref.xs,\n sm = _ref.sm,\n md = _ref.md,\n lg = _ref.lg,\n xl = _ref.xl,\n xxl = _ref.xxl;\n return /*#__PURE__*/_react.default.createElement(_ScreenClassResolver.default, null, function (screenClass) {\n return !style.visible({\n screenClass: screenClass,\n xs: xs,\n sm: sm,\n md: md,\n lg: lg,\n xl: xl,\n xxl: xxl\n }) ? null : children;\n });\n};\n\nVisible.propTypes = {\n /**\n * Content of the component\n */\n children: _propTypes.default.node.isRequired,\n\n /**\n * Show on extra small devices\n */\n xs: _propTypes.default.bool,\n\n /**\n * Show on small devices\n */\n sm: _propTypes.default.bool,\n\n /**\n * Show on medium devices\n */\n md: _propTypes.default.bool,\n\n /**\n * Show on large devices\n */\n lg: _propTypes.default.bool,\n\n /**\n * Show on xlarge devices\n */\n xl: _propTypes.default.bool,\n\n /**\n * Show on xxlarge devices\n */\n xxl: _propTypes.default.bool\n};\nVisible.defaultProps = {\n xs: false,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n xxl: false\n};\nvar _default = Visible;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.visible = exports.default = void 0;\n\nvar visible = function visible(_ref) {\n var screenClass = _ref.screenClass,\n xs = _ref.xs,\n sm = _ref.sm,\n md = _ref.md,\n lg = _ref.lg,\n xl = _ref.xl,\n xxl = _ref.xxl;\n if (screenClass === 'xxl') return xxl;\n if (screenClass === 'xl') return xl;\n if (screenClass === 'lg') return lg;\n if (screenClass === 'md') return md;\n if (screenClass === 'sm') return sm;\n return xs;\n};\n\nexports.visible = visible;\nvar _default = visible;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useScreenClass = exports.screenClasses = void 0;\n\nvar _react = require(\"react\");\n\nvar _config = require(\"./config\");\n\nvar _primitives = require(\"./primitives\");\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar getViewPort = function getViewPort(source) {\n if (source && source.current && source.current.clientWidth) {\n return source.current.clientWidth;\n }\n\n if (typeof _primitives.Window !== 'undefined' && _primitives.Window.innerWidth) {\n return _primitives.Window.innerWidth;\n }\n\n return null;\n};\n\nvar screenClasses = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\nexports.screenClasses = screenClasses;\n\nvar useScreenClass = function useScreenClass(source, fallbackScreenClass) {\n var getScreenClass = function getScreenClass() {\n var _getConfiguration = (0, _config.getConfiguration)(),\n breakpoints = _getConfiguration.breakpoints,\n defaultScreenClass = _getConfiguration.defaultScreenClass,\n maxScreenClass = _getConfiguration.maxScreenClass;\n\n var newScreenClass = defaultScreenClass;\n var viewport = getViewPort(source);\n\n if (viewport) {\n newScreenClass = 'xs';\n if (breakpoints[0] && viewport >= breakpoints[0]) newScreenClass = 'sm';\n if (breakpoints[1] && viewport >= breakpoints[1]) newScreenClass = 'md';\n if (breakpoints[2] && viewport >= breakpoints[2]) newScreenClass = 'lg';\n if (breakpoints[3] && viewport >= breakpoints[3]) newScreenClass = 'xl';\n if (breakpoints[4] && viewport >= breakpoints[4]) newScreenClass = 'xxl';\n } else if (fallbackScreenClass) {\n newScreenClass = fallbackScreenClass;\n }\n\n var newScreenClassIndex = screenClasses.indexOf(newScreenClass);\n var maxScreenClassIndex = screenClasses.indexOf(maxScreenClass);\n\n if (maxScreenClassIndex >= 0 && newScreenClassIndex > maxScreenClassIndex) {\n newScreenClass = screenClasses[maxScreenClassIndex];\n }\n\n return newScreenClass;\n };\n\n var _useState = (0, _react.useState)(function () {\n return getScreenClass();\n }),\n _useState2 = _slicedToArray(_useState, 2),\n screenClass = _useState2[0],\n setScreenClass = _useState2[1];\n\n (0, _react.useEffect)(function () {\n var handleWindowResized = function handleWindowResized() {\n return setScreenClass(getScreenClass());\n };\n\n _primitives.Window.addEventListener('resize', handleWindowResized, false);\n\n return function () {\n _primitives.Window.removeEventListener('resize', handleWindowResized, false);\n };\n }, []);\n return screenClass;\n};\n\nexports.useScreenClass = useScreenClass;","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.p = \"/\";","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","const FixedNumber = (number) => {\r\n\treturn Number.parseFloat(Number.parseFloat(number).toFixed(1));\r\n};\r\n\r\nconst IntersectionCoordinates = ({ x0, y0 }, { x1, y1 }, { x, y }) => {\r\n\t// (y - y0) / (y1 - y0) = (x - x0) / (x1 - x0)\r\n\tif (typeof x !== 'undefined') {\r\n\t\ty = ((x - x0) / (x1 - x0)) * (y1 - y0) + Number(y0);\r\n\t} else {\r\n\t\tx = ((y - y0) / (y1 - y0)) * (x1 - x0) + Number(x0);\r\n\t}\r\n\r\n\treturn { x, y };\r\n};\r\n\r\nexport { FixedNumber, IntersectionCoordinates };","import { useEffect, useState, useRef } from 'react';\r\n\r\nimport { FixedNumber } from '../utility';\r\nimport './Modal.css';\r\n\r\nconst MIN_VALUE = 0.1;\r\nconst MAX_VALUE = 10000;\r\n\r\nfunction Modal({ label, defaultValue, onSave, onClose, refNode }) {\r\n\tconst modalRef = useRef();\r\n\tconst [value, setValue] = useState(defaultValue);\r\n\r\n\tfunction onSubmit(e) {\r\n\t\te.preventDefault();\r\n\t\tvalue !== '' && onSave(value > MAX_VALUE ? MAX_VALUE : (value < MIN_VALUE ? MIN_VALUE : value));\r\n\t\tonClose();\r\n\t}\r\n\r\n\tfunction onChange(e) {\r\n\t\tif (e.target.value !== '')\r\n\t\t\tsetValue(FixedNumber(e.target.value));\r\n\t\telse\r\n\t\t\tsetValue('');\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tif (modalRef.current) {\r\n\t\t\tconst bodyRect = document.body.getBoundingClientRect();\r\n\t\t\tconst rect = refNode.getBoundingClientRect();\r\n\t\t\tconst svgRect = refNode.viewportElement.getBoundingClientRect();\r\n\t\t\tconst top = (rect.y < svgRect.y ? svgRect.y + 20 : rect.top - bodyRect.top + rect.height) + 10;\r\n\t\t\tconst left = rect.left + rect.width / 2 - modalRef.current.clientWidth / 2;\r\n\t\t\tmodalRef.current.style = `top: ${top}px; left: ${left}px`;\r\n\t\t\tmodalRef.current.querySelector('input').select();\r\n\t\t}\r\n\t}, [refNode]);\r\n\r\n\t\r\n\tuseEffect(() => {\r\n\t\tfunction onClick(e) {\r\n\t\t\te.stopPropagation();\r\n\t\t\tif (!modalRef.current.contains(e.target)) onClose();\r\n\t\t}\r\n\t\tfunction onEsc(e) {\r\n\t\t\tif (e.key === 'Escape') onClose();\r\n\t\t}\r\n\t\tsetTimeout(() => {\r\n\t\t\tdocument.addEventListener('click', onClick);\r\n\t\t\tdocument.addEventListener('keydown', onEsc);\r\n\t\t}, 1);\r\n\t\treturn () => document.removeEventListener('click', onClick);\r\n\t}, [refNode]);\r\n\r\n\tuseEffect(() => {\r\n\t\tsetValue(defaultValue);\r\n\t}, [defaultValue]);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{label}\r\n\t\t\t\t\t m\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n}\r\n\r\nexport default Modal;","import React, { useCallback, useContext, useEffect, useState } from 'react';\r\n\r\nimport Modal from './components/Modal';\r\n\r\nexport const ModalContext = React.createContext();\r\n\r\nexport function ModalContextProvider({ children }) {\r\n\tconst [open, setOpen] = useState(false);\r\n\tconst [modalProps, setModalProps] = useState();\r\n\tconst openRef = React.useRef(false);\r\n\r\n\tconst onClose = useCallback(() => {\r\n\t\tif (openRef.current) {\r\n\t\t\tsetOpen(() => {\r\n\t\t\t\topenRef.current = false;\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t}\r\n\t}, []);\r\n\tconst triggerModal = useCallback((label, defaultValue, onSave, refNode) => {\r\n\t\tif (refNode !== modalProps?.refNode || !openRef.current) {\r\n\t\t\tsetModalProps({\r\n\t\t\t\tlabel,\r\n\t\t\t\tdefaultValue,\r\n\t\t\t\tonSave,\r\n\t\t\t\trefNode,\r\n\t\t\t\tonClose\r\n\t\t\t});\r\n\t\t\tsetOpen(() => {\r\n\t\t\t\topenRef.current = true;\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\t\t}\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\t{open && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport function useModal() {\r\n\tconst triggerModal = useContext(ModalContext);\r\n\treturn triggerModal;\r\n};\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n Object.defineProperty(subClass, \"prototype\", {\n value: Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n }),\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","const methods = {}\r\nconst names = []\r\n\r\nexport function registerMethods (name, m) {\r\n if (Array.isArray(name)) {\r\n for (const _name of name) {\r\n registerMethods(_name, m)\r\n }\r\n return\r\n }\r\n\r\n if (typeof name === 'object') {\r\n for (const _name in name) {\r\n registerMethods(_name, name[_name])\r\n }\r\n return\r\n }\r\n\r\n addMethodNames(Object.getOwnPropertyNames(m))\r\n methods[name] = Object.assign(methods[name] || {}, m)\r\n}\r\n\r\nexport function getMethodsFor (name) {\r\n return methods[name] || {}\r\n}\r\n\r\nexport function getMethodNames () {\r\n return [ ...new Set(names) ]\r\n}\r\n\r\nexport function addMethodNames (_names) {\r\n names.push(..._names)\r\n}\r\n","// Map function\r\nexport function map (array, block) {\r\n let i\r\n const il = array.length\r\n const result = []\r\n\r\n for (i = 0; i < il; i++) {\r\n result.push(block(array[i]))\r\n }\r\n\r\n return result\r\n}\r\n\r\n// Filter function\r\nexport function filter (array, block) {\r\n let i\r\n const il = array.length\r\n const result = []\r\n\r\n for (i = 0; i < il; i++) {\r\n if (block(array[i])) {\r\n result.push(array[i])\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\n// Degrees to radians\r\nexport function radians (d) {\r\n return d % 360 * Math.PI / 180\r\n}\r\n\r\n// Radians to degrees\r\nexport function degrees (r) {\r\n return r * 180 / Math.PI % 360\r\n}\r\n\r\n// Convert dash-separated-string to camelCase\r\nexport function camelCase (s) {\r\n return s.toLowerCase().replace(/-(.)/g, function (m, g) {\r\n return g.toUpperCase()\r\n })\r\n}\r\n\r\n// Convert camel cased string to dash separated\r\nexport function unCamelCase (s) {\r\n return s.replace(/([A-Z])/g, function (m, g) {\r\n return '-' + g.toLowerCase()\r\n })\r\n}\r\n\r\n// Capitalize first letter of a string\r\nexport function capitalize (s) {\r\n return s.charAt(0).toUpperCase() + s.slice(1)\r\n}\r\n\r\n// Calculate proportional width and height values when necessary\r\nexport function proportionalSize (element, width, height, box) {\r\n if (width == null || height == null) {\r\n box = box || element.bbox()\r\n\r\n if (width == null) {\r\n width = box.width / box.height * height\r\n } else if (height == null) {\r\n height = box.height / box.width * width\r\n }\r\n }\r\n\r\n return {\r\n width: width,\r\n height: height\r\n }\r\n}\r\n\r\n/**\r\n * This function adds support for string origins.\r\n * It searches for an origin in o.origin o.ox and o.originX.\r\n * This way, origin: {x: 'center', y: 50} can be passed as well as ox: 'center', oy: 50\r\n**/\r\nexport function getOrigin (o, element) {\r\n const origin = o.origin\r\n // First check if origin is in ox or originX\r\n let ox = o.ox != null\n ? o.ox\r\n : o.originX != null\n ? o.originX\r\n : 'center'\r\n let oy = o.oy != null\n ? o.oy\r\n : o.originY != null\n ? o.originY\r\n : 'center'\r\n\r\n // Then check if origin was used and overwrite in that case\r\n if (origin != null) {\r\n [ ox, oy ] = Array.isArray(origin)\n ? origin\r\n : typeof origin === 'object'\n ? [ origin.x, origin.y ]\r\n : [ origin, origin ]\r\n }\r\n\r\n // Make sure to only call bbox when actually needed\r\n const condX = typeof ox === 'string'\r\n const condY = typeof oy === 'string'\r\n if (condX || condY) {\r\n const { height, width, x, y } = element.bbox()\r\n\r\n // And only overwrite if string was passed for this specific axis\r\n if (condX) {\r\n ox = ox.includes('left')\n ? x\r\n : ox.includes('right')\n ? x + width\r\n : x + width / 2\r\n }\r\n\r\n if (condY) {\r\n oy = oy.includes('top')\n ? y\r\n : oy.includes('bottom')\n ? y + height\r\n : y + height / 2\r\n }\r\n }\r\n\r\n // Return the origin as it is if it wasn't a string\r\n return [ ox, oy ]\r\n}\r\n","// Default namespaces\nexport const svg = 'http://www.w3.org/2000/svg'\nexport const html = 'http://www.w3.org/1999/xhtml'\nexport const xmlns = 'http://www.w3.org/2000/xmlns/'\nexport const xlink = 'http://www.w3.org/1999/xlink'\nexport const svgjs = 'http://svgjs.dev/svgjs'\n","export const globals = {\r\n window: typeof window === 'undefined' ? null : window,\r\n document: typeof document === 'undefined' ? null : document\r\n}\r\n\r\nexport function registerWindow (win = null, doc = null) {\r\n globals.window = win\r\n globals.document = doc\r\n}\r\n\r\nconst save = {}\r\n\r\nexport function saveWindow () {\r\n save.window = globals.window\r\n save.document = globals.document\r\n}\r\n\r\nexport function restoreWindow () {\r\n globals.window = save.window\r\n globals.document = save.document\r\n}\r\n\r\nexport function withWindow (win, fn) {\r\n saveWindow()\r\n registerWindow(win, win.document)\r\n fn(win, win.document)\r\n restoreWindow()\r\n}\r\n\r\nexport function getWindow () {\r\n return globals.window\r\n}\r\n","export default class Base {\r\n // constructor (node/*, {extensions = []} */) {\r\n // // this.tags = []\r\n // //\r\n // // for (let extension of extensions) {\r\n // // extension.setup.call(this, node)\r\n // // this.tags.push(extension.name)\r\n // // }\r\n // }\r\n}\r\n","import { addMethodNames } from './methods.js'\r\nimport { capitalize } from './utils.js'\r\nimport { svg } from '../modules/core/namespaces.js'\r\nimport { globals } from '../utils/window.js'\r\nimport Base from '../types/Base.js'\r\n\r\nconst elements = {}\r\nexport const root = '___SYMBOL___ROOT___'\r\n\r\n// Method for element creation\r\nexport function create (name, ns = svg) {\r\n // create element\r\n return globals.document.createElementNS(ns, name)\r\n}\r\n\r\nexport function makeInstance (element, isHTML = false) {\r\n if (element instanceof Base) return element\r\n\r\n if (typeof element === 'object') {\r\n return adopter(element)\r\n }\r\n\r\n if (element == null) {\r\n return new elements[root]()\r\n }\r\n\r\n if (typeof element === 'string' && element.charAt(0) !== '<') {\r\n return adopter(globals.document.querySelector(element))\r\n }\r\n\r\n // Make sure, that HTML elements are created with the correct namespace\r\n const wrapper = isHTML ? globals.document.createElement('div') : create('svg')\r\n wrapper.innerHTML = element\r\n\r\n // We can use firstChild here because we know,\r\n // that the first char is < and thus an element\r\n element = adopter(wrapper.firstChild)\r\n\r\n // make sure, that element doesnt have its wrapper attached\r\n wrapper.removeChild(wrapper.firstChild)\r\n return element\r\n}\r\n\r\nexport function nodeOrNew (name, node) {\r\n return node instanceof globals.window.Node ? node : create(name)\r\n}\r\n\r\n// Adopt existing svg elements\r\nexport function adopt (node) {\r\n // check for presence of node\r\n if (!node) return null\r\n\r\n // make sure a node isn't already adopted\r\n if (node.instance instanceof Base) return node.instance\r\n\r\n if (node.nodeName === '#document-fragment') {\r\n return new elements.Fragment(node)\r\n }\r\n\r\n // initialize variables\r\n let className = capitalize(node.nodeName || 'Dom')\r\n\r\n // Make sure that gradients are adopted correctly\r\n if (className === 'LinearGradient' || className === 'RadialGradient') {\r\n className = 'Gradient'\r\n\r\n // Fallback to Dom if element is not known\r\n } else if (!elements[className]) {\r\n className = 'Dom'\r\n }\r\n\r\n return new elements[className](node)\r\n}\r\n\r\nlet adopter = adopt\r\n\r\nexport function mockAdopt (mock = adopt) {\r\n adopter = mock\r\n}\r\n\r\nexport function register (element, name = element.name, asRoot = false) {\r\n elements[name] = element\r\n if (asRoot) elements[root] = element\r\n\r\n addMethodNames(Object.getOwnPropertyNames(element.prototype))\r\n\r\n return element\r\n}\r\n\r\nexport function getClass (name) {\r\n return elements[name]\r\n}\r\n\r\n// Element id sequence\r\nlet did = 1000\r\n\r\n// Get next named element id\r\nexport function eid (name) {\r\n return 'Svgjs' + capitalize(name) + (did++)\r\n}\r\n\r\n// Deep new id assignment\r\nexport function assignNewId (node) {\r\n // do the same for SVG child nodes as well\r\n for (let i = node.children.length - 1; i >= 0; i--) {\r\n assignNewId(node.children[i])\r\n }\r\n\r\n if (node.id) {\r\n node.id = eid(node.nodeName)\r\n return node\r\n }\r\n\r\n return node\r\n}\r\n\r\n// Method for extending objects\r\nexport function extend (modules, methods) {\r\n let key, i\r\n\r\n modules = Array.isArray(modules) ? modules : [ modules ]\r\n\r\n for (i = modules.length - 1; i >= 0; i--) {\r\n for (key in methods) {\r\n modules[i].prototype[key] = methods[key]\r\n }\r\n }\r\n}\r\n\r\nexport function wrapWithAttrCheck (fn) {\r\n return function (...args) {\r\n const o = args[args.length - 1]\r\n\r\n if (o && o.constructor === Object && !(o instanceof Array)) {\r\n return fn.apply(this, args.slice(0, -1)).attr(o)\r\n } else {\r\n return fn.apply(this, args)\r\n }\r\n }\r\n}\r\n","import { makeInstance } from '../../utils/adopter.js'\r\nimport { registerMethods } from '../../utils/methods.js'\r\n\r\n// Get all siblings, including myself\r\nexport function siblings () {\r\n return this.parent().children()\r\n}\r\n\r\n// Get the current position siblings\r\nexport function position () {\r\n return this.parent().index(this)\r\n}\r\n\r\n// Get the next element (will return null if there is none)\r\nexport function next () {\r\n return this.siblings()[this.position() + 1]\r\n}\r\n\r\n// Get the next element (will return null if there is none)\r\nexport function prev () {\r\n return this.siblings()[this.position() - 1]\r\n}\r\n\r\n// Send given element one step forward\r\nexport function forward () {\r\n const i = this.position()\r\n const p = this.parent()\r\n\r\n // move node one step forward\r\n p.add(this.remove(), i + 1)\r\n\r\n return this\r\n}\r\n\r\n// Send given element one step backward\r\nexport function backward () {\r\n const i = this.position()\r\n const p = this.parent()\r\n\r\n p.add(this.remove(), i ? i - 1 : 0)\r\n\r\n return this\r\n}\r\n\r\n// Send given element all the way to the front\r\nexport function front () {\r\n const p = this.parent()\r\n\r\n // Move node forward\r\n p.add(this.remove())\r\n\r\n return this\r\n}\r\n\r\n// Send given element all the way to the back\r\nexport function back () {\r\n const p = this.parent()\r\n\r\n // Move node back\r\n p.add(this.remove(), 0)\r\n\r\n return this\r\n}\r\n\r\n// Inserts a given element before the targeted element\r\nexport function before (element) {\r\n element = makeInstance(element)\r\n element.remove()\r\n\r\n const i = this.position()\r\n\r\n this.parent().add(element, i)\r\n\r\n return this\r\n}\r\n\r\n// Inserts a given element after the targeted element\r\nexport function after (element) {\r\n element = makeInstance(element)\r\n element.remove()\r\n\r\n const i = this.position()\r\n\r\n this.parent().add(element, i + 1)\r\n\r\n return this\r\n}\r\n\r\nexport function insertBefore (element) {\r\n element = makeInstance(element)\r\n element.before(this)\r\n return this\r\n}\r\n\r\nexport function insertAfter (element) {\r\n element = makeInstance(element)\r\n element.after(this)\r\n return this\r\n}\r\n\r\nregisterMethods('Dom', {\r\n siblings,\r\n position,\r\n next,\r\n prev,\r\n forward,\r\n backward,\r\n front,\r\n back,\r\n before,\r\n after,\r\n insertBefore,\r\n insertAfter\r\n})\r\n","// Parse unit value\r\nexport const numberAndUnit = /^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i\r\n\r\n// Parse hex value\r\nexport const hex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i\r\n\r\n// Parse rgb value\r\nexport const rgb = /rgb\\((\\d+),(\\d+),(\\d+)\\)/\r\n\r\n// Parse reference id\r\nexport const reference = /(#[a-z_][a-z0-9\\-_]*)/i\r\n\r\n// splits a transformation chain\r\nexport const transforms = /\\)\\s*,?\\s*/\r\n\r\n// Whitespace\r\nexport const whitespace = /\\s/g\r\n\r\n// Test hex value\r\nexport const isHex = /^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i\r\n\r\n// Test rgb value\r\nexport const isRgb = /^rgb\\(/\r\n\r\n// Test for blank string\r\nexport const isBlank = /^(\\s+)?$/\r\n\r\n// Test for numeric string\r\nexport const isNumber = /^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i\r\n\r\n// Test for image url\r\nexport const isImage = /\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i\r\n\r\n// split at whitespace and comma\r\nexport const delimiter = /[\\s,]+/\r\n\r\n// Test for path letter\r\nexport const isPathLetter = /[MLHVCSQTAZ]/i\r\n","\r\nimport { hex, isHex, isRgb, rgb, whitespace } from '../modules/core/regex.js'\r\n\r\nfunction sixDigitHex (hex) {\r\n return hex.length === 4\r\n ? [ '#',\r\n hex.substring(1, 2), hex.substring(1, 2),\r\n hex.substring(2, 3), hex.substring(2, 3),\r\n hex.substring(3, 4), hex.substring(3, 4)\r\n ].join('')\r\n : hex\r\n}\r\n\r\nfunction componentHex (component) {\r\n const integer = Math.round(component)\r\n const bounded = Math.max(0, Math.min(255, integer))\r\n const hex = bounded.toString(16)\r\n return hex.length === 1 ? '0' + hex : hex\r\n}\r\n\r\nfunction is (object, space) {\r\n for (let i = space.length; i--;) {\r\n if (object[space[i]] == null) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction getParameters (a, b) {\r\n const params = is(a, 'rgb')\n ? { _a: a.r, _b: a.g, _c: a.b, _d: 0, space: 'rgb' }\r\n : is(a, 'xyz')\n ? { _a: a.x, _b: a.y, _c: a.z, _d: 0, space: 'xyz' }\r\n : is(a, 'hsl')\n ? { _a: a.h, _b: a.s, _c: a.l, _d: 0, space: 'hsl' }\r\n : is(a, 'lab')\n ? { _a: a.l, _b: a.a, _c: a.b, _d: 0, space: 'lab' }\r\n : is(a, 'lch')\n ? { _a: a.l, _b: a.c, _c: a.h, _d: 0, space: 'lch' }\r\n : is(a, 'cmyk')\n ? { _a: a.c, _b: a.m, _c: a.y, _d: a.k, space: 'cmyk' }\r\n : { _a: 0, _b: 0, _c: 0, space: 'rgb' }\r\n\r\n params.space = b || params.space\r\n return params\r\n}\r\n\r\nfunction cieSpace (space) {\r\n if (space === 'lab' || space === 'xyz' || space === 'lch') {\r\n return true\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nfunction hueToRgb (p, q, t) {\r\n if (t < 0) t += 1\r\n if (t > 1) t -= 1\r\n if (t < 1 / 6) return p + (q - p) * 6 * t\r\n if (t < 1 / 2) return q\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6\r\n return p\r\n}\r\n\r\nexport default class Color {\r\n constructor (...inputs) {\r\n this.init(...inputs)\r\n }\r\n\r\n // Test if given value is a color\n static isColor (color) {\r\n return color && (\r\n color instanceof Color\r\n || this.isRgb(color)\r\n || this.test(color)\r\n )\r\n }\n\n // Test if given value is an rgb object\n static isRgb (color) {\r\n return color && typeof color.r === 'number'\r\n && typeof color.g === 'number'\r\n && typeof color.b === 'number'\r\n }\n\n /*\r\n Generating random colors\r\n */\n static random (mode = 'vibrant', t, u) {\r\n\r\n // Get the math modules\r\n const { random, round, sin, PI: pi } = Math\r\n\r\n // Run the correct generator\r\n if (mode === 'vibrant') {\r\n\r\n const l = (81 - 57) * random() + 57\r\n const c = (83 - 45) * random() + 45\r\n const h = 360 * random()\r\n const color = new Color(l, c, h, 'lch')\r\n return color\r\n\r\n } else if (mode === 'sine') {\r\n\r\n t = t == null ? random() : t\r\n const r = round(80 * sin(2 * pi * t / 0.5 + 0.01) + 150)\r\n const g = round(50 * sin(2 * pi * t / 0.5 + 4.6) + 200)\r\n const b = round(100 * sin(2 * pi * t / 0.5 + 2.3) + 150)\r\n const color = new Color(r, g, b)\r\n return color\r\n\r\n } else if (mode === 'pastel') {\r\n\r\n const l = (94 - 86) * random() + 86\r\n const c = (26 - 9) * random() + 9\r\n const h = 360 * random()\r\n const color = new Color(l, c, h, 'lch')\r\n return color\r\n\r\n } else if (mode === 'dark') {\r\n\r\n const l = 10 + 10 * random()\r\n const c = (125 - 75) * random() + 86\r\n const h = 360 * random()\r\n const color = new Color(l, c, h, 'lch')\r\n return color\r\n\r\n } else if (mode === 'rgb') {\r\n\r\n const r = 255 * random()\r\n const g = 255 * random()\r\n const b = 255 * random()\r\n const color = new Color(r, g, b)\r\n return color\r\n\r\n } else if (mode === 'lab') {\r\n\r\n const l = 100 * random()\r\n const a = 256 * random() - 128\r\n const b = 256 * random() - 128\r\n const color = new Color(l, a, b, 'lab')\r\n return color\r\n\r\n } else if (mode === 'grey') {\r\n\r\n const grey = 255 * random()\r\n const color = new Color(grey, grey, grey)\r\n return color\r\n\r\n } else {\r\n\r\n throw new Error('Unsupported random color mode')\r\n\r\n }\r\n }\n\n // Test if given value is a color string\n static test (color) {\r\n return (typeof color === 'string')\r\n && (isHex.test(color) || isRgb.test(color))\r\n }\n\n cmyk () {\r\n\r\n // Get the rgb values for the current color\r\n const { _a, _b, _c } = this.rgb()\r\n const [ r, g, b ] = [ _a, _b, _c ].map(v => v / 255)\r\n\r\n // Get the cmyk values in an unbounded format\r\n const k = Math.min(1 - r, 1 - g, 1 - b)\r\n\r\n if (k === 1) {\r\n // Catch the black case\r\n return new Color(0, 0, 0, 1, 'cmyk')\r\n }\r\n\r\n const c = (1 - r - k) / (1 - k)\r\n const m = (1 - g - k) / (1 - k)\r\n const y = (1 - b - k) / (1 - k)\r\n\r\n // Construct the new color\r\n const color = new Color(c, m, y, k, 'cmyk')\r\n return color\r\n }\n\n hsl () {\r\n\r\n // Get the rgb values\r\n const { _a, _b, _c } = this.rgb()\r\n const [ r, g, b ] = [ _a, _b, _c ].map(v => v / 255)\r\n\r\n // Find the maximum and minimum values to get the lightness\r\n const max = Math.max(r, g, b)\r\n const min = Math.min(r, g, b)\r\n const l = (max + min) / 2\r\n\r\n // If the r, g, v values are identical then we are grey\r\n const isGrey = max === min\r\n\r\n // Calculate the hue and saturation\r\n const delta = max - min\r\n const s = isGrey\n ? 0\r\n : l > 0.5\n ? delta / (2 - max - min)\r\n : delta / (max + min)\r\n const h = isGrey\n ? 0\r\n : max === r\n ? ((g - b) / delta + (g < b ? 6 : 0)) / 6\r\n : max === g\n ? ((b - r) / delta + 2) / 6\r\n : max === b\n ? ((r - g) / delta + 4) / 6\r\n : 0\r\n\r\n // Construct and return the new color\r\n const color = new Color(360 * h, 100 * s, 100 * l, 'hsl')\r\n return color\r\n }\n\n init (a = 0, b = 0, c = 0, d = 0, space = 'rgb') {\r\n // This catches the case when a falsy value is passed like ''\r\n a = !a ? 0 : a\r\n\r\n // Reset all values in case the init function is rerun with new color space\r\n if (this.space) {\r\n for (const component in this.space) {\r\n delete this[this.space[component]]\r\n }\r\n }\r\n\r\n if (typeof a === 'number') {\r\n // Allow for the case that we don't need d...\r\n space = typeof d === 'string' ? d : space\r\n d = typeof d === 'string' ? 0 : d\r\n\r\n // Assign the values straight to the color\r\n Object.assign(this, { _a: a, _b: b, _c: c, _d: d, space })\r\n // If the user gave us an array, make the color from it\r\n } else if (a instanceof Array) {\r\n this.space = b || (typeof a[3] === 'string' ? a[3] : a[4]) || 'rgb'\r\n Object.assign(this, { _a: a[0], _b: a[1], _c: a[2], _d: a[3] || 0 })\r\n } else if (a instanceof Object) {\r\n // Set the object up and assign its values directly\r\n const values = getParameters(a, b)\r\n Object.assign(this, values)\r\n } else if (typeof a === 'string') {\r\n if (isRgb.test(a)) {\r\n const noWhitespace = a.replace(whitespace, '')\r\n const [ _a, _b, _c ] = rgb.exec(noWhitespace)\r\n .slice(1, 4).map(v => parseInt(v))\r\n Object.assign(this, { _a, _b, _c, _d: 0, space: 'rgb' })\r\n } else if (isHex.test(a)) {\r\n const hexParse = v => parseInt(v, 16)\r\n const [ , _a, _b, _c ] = hex.exec(sixDigitHex(a)).map(hexParse)\r\n Object.assign(this, { _a, _b, _c, _d: 0, space: 'rgb' })\r\n } else throw Error('Unsupported string format, can\\'t construct Color')\r\n }\r\n\r\n // Now add the components as a convenience\r\n const { _a, _b, _c, _d } = this\r\n const components = this.space === 'rgb'\n ? { r: _a, g: _b, b: _c }\r\n : this.space === 'xyz'\n ? { x: _a, y: _b, z: _c }\r\n : this.space === 'hsl'\n ? { h: _a, s: _b, l: _c }\r\n : this.space === 'lab'\n ? { l: _a, a: _b, b: _c }\r\n : this.space === 'lch'\n ? { l: _a, c: _b, h: _c }\r\n : this.space === 'cmyk'\n ? { c: _a, m: _b, y: _c, k: _d }\r\n : {}\r\n Object.assign(this, components)\r\n }\r\n\r\n lab () {\r\n // Get the xyz color\r\n const { x, y, z } = this.xyz()\r\n\r\n // Get the lab components\r\n const l = (116 * y) - 16\r\n const a = 500 * (x - y)\r\n const b = 200 * (y - z)\r\n\r\n // Construct and return a new color\r\n const color = new Color(l, a, b, 'lab')\r\n return color\r\n }\n\n lch () {\r\n\r\n // Get the lab color directly\r\n const { l, a, b } = this.lab()\r\n\r\n // Get the chromaticity and the hue using polar coordinates\r\n const c = Math.sqrt(a ** 2 + b ** 2)\r\n let h = 180 * Math.atan2(b, a) / Math.PI\r\n if (h < 0) {\r\n h *= -1\r\n h = 360 - h\r\n }\r\n\r\n // Make a new color and return it\r\n const color = new Color(l, c, h, 'lch')\r\n return color\r\n }\n /*\r\n Conversion Methods\r\n */\r\n\r\n rgb () {\r\n if (this.space === 'rgb') {\r\n return this\r\n } else if (cieSpace(this.space)) {\r\n // Convert to the xyz color space\r\n let { x, y, z } = this\r\n if (this.space === 'lab' || this.space === 'lch') {\r\n // Get the values in the lab space\r\n let { l, a, b } = this\r\n if (this.space === 'lch') {\r\n const { c, h } = this\r\n const dToR = Math.PI / 180\r\n a = c * Math.cos(dToR * h)\r\n b = c * Math.sin(dToR * h)\r\n }\r\n\r\n // Undo the nonlinear function\r\n const yL = (l + 16) / 116\r\n const xL = a / 500 + yL\r\n const zL = yL - b / 200\r\n\r\n // Get the xyz values\r\n const ct = 16 / 116\r\n const mx = 0.008856\r\n const nm = 7.787\r\n x = 0.95047 * ((xL ** 3 > mx) ? xL ** 3 : (xL - ct) / nm)\r\n y = 1.00000 * ((yL ** 3 > mx) ? yL ** 3 : (yL - ct) / nm)\r\n z = 1.08883 * ((zL ** 3 > mx) ? zL ** 3 : (zL - ct) / nm)\r\n }\r\n\r\n // Convert xyz to unbounded rgb values\r\n const rU = x * 3.2406 + y * -1.5372 + z * -0.4986\r\n const gU = x * -0.9689 + y * 1.8758 + z * 0.0415\r\n const bU = x * 0.0557 + y * -0.2040 + z * 1.0570\r\n\r\n // Convert the values to true rgb values\r\n const pow = Math.pow\r\n const bd = 0.0031308\r\n const r = (rU > bd) ? (1.055 * pow(rU, 1 / 2.4) - 0.055) : 12.92 * rU\r\n const g = (gU > bd) ? (1.055 * pow(gU, 1 / 2.4) - 0.055) : 12.92 * gU\r\n const b = (bU > bd) ? (1.055 * pow(bU, 1 / 2.4) - 0.055) : 12.92 * bU\r\n\r\n // Make and return the color\r\n const color = new Color(255 * r, 255 * g, 255 * b)\r\n return color\r\n } else if (this.space === 'hsl') {\r\n // https://bgrins.github.io/TinyColor/docs/tinycolor.html\r\n // Get the current hsl values\r\n let { h, s, l } = this\r\n h /= 360\r\n s /= 100\r\n l /= 100\r\n\r\n // If we are grey, then just make the color directly\r\n if (s === 0) {\r\n l *= 255\r\n const color = new Color(l, l, l)\r\n return color\r\n }\r\n\r\n // TODO I have no idea what this does :D If you figure it out, tell me!\r\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s\r\n const p = 2 * l - q\r\n\r\n // Get the rgb values\r\n const r = 255 * hueToRgb(p, q, h + 1 / 3)\r\n const g = 255 * hueToRgb(p, q, h)\r\n const b = 255 * hueToRgb(p, q, h - 1 / 3)\r\n\r\n // Make a new color\r\n const color = new Color(r, g, b)\r\n return color\r\n } else if (this.space === 'cmyk') {\r\n // https://gist.github.com/felipesabino/5066336\r\n // Get the normalised cmyk values\r\n const { c, m, y, k } = this\r\n\r\n // Get the rgb values\r\n const r = 255 * (1 - Math.min(1, c * (1 - k) + k))\r\n const g = 255 * (1 - Math.min(1, m * (1 - k) + k))\r\n const b = 255 * (1 - Math.min(1, y * (1 - k) + k))\r\n\r\n // Form the color and return it\r\n const color = new Color(r, g, b)\r\n return color\r\n } else {\r\n return this\r\n }\r\n }\r\n\n toArray () {\r\n const { _a, _b, _c, _d, space } = this\r\n return [ _a, _b, _c, _d, space ]\r\n }\n\n toHex () {\r\n const [ r, g, b ] = this._clamped().map(componentHex)\r\n return `#${r}${g}${b}`\r\n }\n\n toRgb () {\r\n const [ rV, gV, bV ] = this._clamped()\r\n const string = `rgb(${rV},${gV},${bV})`\r\n return string\r\n }\n\n toString () {\r\n return this.toHex()\r\n }\n\n xyz () {\r\n\r\n // Normalise the red, green and blue values\r\n const { _a: r255, _b: g255, _c: b255 } = this.rgb()\r\n const [ r, g, b ] = [ r255, g255, b255 ].map(v => v / 255)\r\n\r\n // Convert to the lab rgb space\r\n const rL = (r > 0.04045) ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92\r\n const gL = (g > 0.04045) ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92\r\n const bL = (b > 0.04045) ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92\r\n\r\n // Convert to the xyz color space without bounding the values\r\n const xU = (rL * 0.4124 + gL * 0.3576 + bL * 0.1805) / 0.95047\r\n const yU = (rL * 0.2126 + gL * 0.7152 + bL * 0.0722) / 1.00000\r\n const zU = (rL * 0.0193 + gL * 0.1192 + bL * 0.9505) / 1.08883\r\n\r\n // Get the proper xyz values by applying the bounding\r\n const x = (xU > 0.008856) ? Math.pow(xU, 1 / 3) : (7.787 * xU) + 16 / 116\r\n const y = (yU > 0.008856) ? Math.pow(yU, 1 / 3) : (7.787 * yU) + 16 / 116\r\n const z = (zU > 0.008856) ? Math.pow(zU, 1 / 3) : (7.787 * zU) + 16 / 116\r\n\r\n // Make and return the color\r\n const color = new Color(x, y, z, 'xyz')\r\n return color\r\n }\r\n\n /*\r\n Input and Output methods\r\n */\r\n\r\n _clamped () {\r\n const { _a, _b, _c } = this.rgb()\r\n const { max, min, round } = Math\r\n const format = v => max(0, min(round(v), 255))\r\n return [ _a, _b, _c ].map(format)\r\n }\r\n\r\n /*\r\n Constructing colors\r\n */\r\n\r\n}\r\n","import { delimiter } from '../core/regex.js'\r\nimport { registerMethods } from '../../utils/methods.js'\r\n\r\n// Return array of classes on the node\r\nexport function classes () {\r\n const attr = this.attr('class')\r\n return attr == null ? [] : attr.trim().split(delimiter)\r\n}\r\n\r\n// Return true if class exists on the node, false otherwise\r\nexport function hasClass (name) {\r\n return this.classes().indexOf(name) !== -1\r\n}\r\n\r\n// Add class to the node\r\nexport function addClass (name) {\r\n if (!this.hasClass(name)) {\r\n const array = this.classes()\r\n array.push(name)\r\n this.attr('class', array.join(' '))\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Remove class from the node\r\nexport function removeClass (name) {\r\n if (this.hasClass(name)) {\r\n this.attr('class', this.classes().filter(function (c) {\r\n return c !== name\r\n }).join(' '))\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Toggle the presence of a class on the node\r\nexport function toggleClass (name) {\r\n return this.hasClass(name) ? this.removeClass(name) : this.addClass(name)\r\n}\r\n\r\nregisterMethods('Dom', {\r\n classes, hasClass, addClass, removeClass, toggleClass\r\n})\r\n","import { camelCase } from '../../utils/utils.js'\r\nimport { isBlank } from '../core/regex.js'\r\nimport { registerMethods } from '../../utils/methods.js'\r\n\r\n// Dynamic style generator\r\nexport function css (style, val) {\r\n const ret = {}\r\n if (arguments.length === 0) {\r\n // get full style as object\r\n this.node.style.cssText.split(/\\s*;\\s*/)\r\n .filter(function (el) {\r\n return !!el.length\r\n })\r\n .forEach(function (el) {\r\n const t = el.split(/\\s*:\\s*/)\r\n ret[t[0]] = t[1]\r\n })\r\n return ret\r\n }\r\n\r\n if (arguments.length < 2) {\r\n // get style properties as array\r\n if (Array.isArray(style)) {\r\n for (const name of style) {\r\n const cased = camelCase(name)\r\n ret[cased] = this.node.style[cased]\r\n }\r\n return ret\r\n }\r\n\r\n // get style for property\r\n if (typeof style === 'string') {\r\n return this.node.style[camelCase(style)]\r\n }\r\n\r\n // set styles in object\r\n if (typeof style === 'object') {\r\n for (const name in style) {\r\n // set empty string if null/undefined/'' was given\r\n this.node.style[camelCase(name)]\r\n = (style[name] == null || isBlank.test(style[name])) ? '' : style[name]\r\n }\r\n }\r\n }\r\n\r\n // set style for property\r\n if (arguments.length === 2) {\r\n this.node.style[camelCase(style)]\r\n = (val == null || isBlank.test(val)) ? '' : val\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Show element\r\nexport function show () {\r\n return this.css('display', '')\r\n}\r\n\r\n// Hide element\r\nexport function hide () {\r\n return this.css('display', 'none')\r\n}\r\n\r\n// Is element visible?\r\nexport function visible () {\r\n return this.css('display') !== 'none'\r\n}\r\n\r\nregisterMethods('Dom', {\r\n css, show, hide, visible\r\n})\r\n","import { registerMethods } from '../../utils/methods.js'\r\nimport { filter, map } from '../../utils/utils.js'\r\n\r\n// Store data values on svg nodes\r\nexport function data (a, v, r) {\r\n if (a == null) {\r\n // get an object of attributes\r\n return this.data(map(filter(this.node.attributes, (el) => el.nodeName.indexOf('data-') === 0), (el) => el.nodeName.slice(5)))\r\n } else if (a instanceof Array) {\r\n const data = {}\r\n for (const key of a) {\r\n data[key] = this.data(key)\r\n }\r\n return data\r\n } else if (typeof a === 'object') {\r\n for (v in a) {\r\n this.data(v, a[v])\r\n }\r\n } else if (arguments.length < 2) {\r\n try {\r\n return JSON.parse(this.attr('data-' + a))\r\n } catch (e) {\r\n return this.attr('data-' + a)\r\n }\r\n } else {\r\n this.attr('data-' + a,\r\n v === null\n ? null\r\n : r === true || typeof v === 'string' || typeof v === 'number'\n ? v\r\n : JSON.stringify(v)\r\n )\r\n }\r\n\r\n return this\r\n}\r\n\r\nregisterMethods('Dom', { data })\r\n","import { registerMethods } from '../../utils/methods.js'\r\n\r\n// Remember arbitrary data\r\nexport function remember (k, v) {\r\n // remember every item in an object individually\r\n if (typeof arguments[0] === 'object') {\r\n for (const key in k) {\r\n this.remember(key, k[key])\r\n }\r\n } else if (arguments.length === 1) {\r\n // retrieve memory\r\n return this.memory()[k]\r\n } else {\r\n // store memory\r\n this.memory()[k] = v\r\n }\r\n\r\n return this\r\n}\r\n\r\n// Erase a given memory\r\nexport function forget () {\r\n if (arguments.length === 0) {\r\n this._memory = {}\r\n } else {\r\n for (let i = arguments.length - 1; i >= 0; i--) {\r\n delete this.memory()[arguments[i]]\r\n }\r\n }\r\n return this\r\n}\r\n\r\n// This triggers creation of a new hidden class which is not performant\r\n// However, this function is not rarely used so it will not happen frequently\r\n// Return local memory object\r\nexport function memory () {\r\n return (this._memory = this._memory || {})\r\n}\r\n\r\nregisterMethods('Dom', { remember, forget, memory })\r\n","import Matrix from './Matrix.js'\r\n\r\nexport default class Point {\r\n // Initialize\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n // Clone point\n clone () {\r\n return new Point(this)\r\n }\n\n init (x, y) {\r\n const base = { x: 0, y: 0 }\r\n\r\n // ensure source as object\r\n const source = Array.isArray(x)\n ? { x: x[0], y: x[1] }\r\n : typeof x === 'object'\n ? { x: x.x, y: x.y }\r\n : { x: x, y: y }\r\n\r\n // merge source\r\n this.x = source.x == null ? base.x : source.x\r\n this.y = source.y == null ? base.y : source.y\r\n\r\n return this\r\n }\r\n\r\n toArray () {\r\n return [ this.x, this.y ]\r\n }\n\n transform (m) {\r\n return this.clone().transformO(m)\r\n }\r\n\r\n // Transform point with matrix\r\n transformO (m) {\r\n if (!Matrix.isMatrixLike(m)) {\r\n m = new Matrix(m)\r\n }\r\n\r\n const { x, y } = this\r\n\r\n // Perform the matrix multiplication\r\n this.x = m.a * x + m.c * y + m.e\r\n this.y = m.b * x + m.d * y + m.f\r\n\r\n return this\r\n }\r\n\r\n}\r\n\r\nexport function point (x, y) {\r\n return new Point(x, y).transform(this.screenCTM().inverse())\r\n}\r\n","import { delimiter } from '../modules/core/regex.js'\r\nimport { radians } from '../utils/utils.js'\r\nimport { register } from '../utils/adopter.js'\r\nimport Element from '../elements/Element.js'\r\nimport Point from './Point.js'\r\n\r\nfunction closeEnough (a, b, threshold) {\r\n return Math.abs(b - a) < (threshold || 1e-6)\r\n}\r\n\r\nexport default class Matrix {\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n static formatTransforms (o) {\r\n // Get all of the parameters required to form the matrix\r\n const flipBoth = o.flip === 'both' || o.flip === true\r\n const flipX = o.flip && (flipBoth || o.flip === 'x') ? -1 : 1\r\n const flipY = o.flip && (flipBoth || o.flip === 'y') ? -1 : 1\r\n const skewX = o.skew && o.skew.length\n ? o.skew[0]\r\n : isFinite(o.skew)\n ? o.skew\r\n : isFinite(o.skewX)\n ? o.skewX\r\n : 0\r\n const skewY = o.skew && o.skew.length\n ? o.skew[1]\r\n : isFinite(o.skew)\n ? o.skew\r\n : isFinite(o.skewY)\n ? o.skewY\r\n : 0\r\n const scaleX = o.scale && o.scale.length\n ? o.scale[0] * flipX\r\n : isFinite(o.scale)\n ? o.scale * flipX\r\n : isFinite(o.scaleX)\n ? o.scaleX * flipX\r\n : flipX\r\n const scaleY = o.scale && o.scale.length\n ? o.scale[1] * flipY\r\n : isFinite(o.scale)\n ? o.scale * flipY\r\n : isFinite(o.scaleY)\n ? o.scaleY * flipY\r\n : flipY\r\n const shear = o.shear || 0\r\n const theta = o.rotate || o.theta || 0\r\n const origin = new Point(o.origin || o.around || o.ox || o.originX, o.oy || o.originY)\r\n const ox = origin.x\r\n const oy = origin.y\r\n // We need Point to be invalid if nothing was passed because we cannot default to 0 here. Thats why NaN\r\n const position = new Point(o.position || o.px || o.positionX || NaN, o.py || o.positionY || NaN)\r\n const px = position.x\r\n const py = position.y\r\n const translate = new Point(o.translate || o.tx || o.translateX, o.ty || o.translateY)\r\n const tx = translate.x\r\n const ty = translate.y\r\n const relative = new Point(o.relative || o.rx || o.relativeX, o.ry || o.relativeY)\r\n const rx = relative.x\r\n const ry = relative.y\r\n\r\n // Populate all of the values\r\n return {\r\n scaleX, scaleY, skewX, skewY, shear, theta, rx, ry, tx, ty, ox, oy, px, py\r\n }\r\n }\n\n static fromArray (a) {\r\n return { a: a[0], b: a[1], c: a[2], d: a[3], e: a[4], f: a[5] }\r\n }\n\n static isMatrixLike (o) {\r\n return (\r\n o.a != null\r\n || o.b != null\r\n || o.c != null\r\n || o.d != null\r\n || o.e != null\r\n || o.f != null\r\n )\r\n }\n\n // left matrix, right matrix, target matrix which is overwritten\n static matrixMultiply (l, r, o) {\r\n // Work out the product directly\r\n const a = l.a * r.a + l.c * r.b\r\n const b = l.b * r.a + l.d * r.b\r\n const c = l.a * r.c + l.c * r.d\r\n const d = l.b * r.c + l.d * r.d\r\n const e = l.e + l.a * r.e + l.c * r.f\r\n const f = l.f + l.b * r.e + l.d * r.f\r\n\r\n // make sure to use local variables because l/r and o could be the same\r\n o.a = a\r\n o.b = b\r\n o.c = c\r\n o.d = d\r\n o.e = e\r\n o.f = f\r\n\r\n return o\r\n }\n\n around (cx, cy, matrix) {\r\n return this.clone().aroundO(cx, cy, matrix)\r\n }\n\n // Transform around a center point\n aroundO (cx, cy, matrix) {\r\n const dx = cx || 0\r\n const dy = cy || 0\r\n return this.translateO(-dx, -dy).lmultiplyO(matrix).translateO(dx, dy)\r\n }\n\n // Clones this matrix\n clone () {\r\n return new Matrix(this)\r\n }\n\n // Decomposes this matrix into its affine parameters\n decompose (cx = 0, cy = 0) {\r\n // Get the parameters from the matrix\r\n const a = this.a\r\n const b = this.b\r\n const c = this.c\r\n const d = this.d\r\n const e = this.e\r\n const f = this.f\r\n\r\n // Figure out if the winding direction is clockwise or counterclockwise\r\n const determinant = a * d - b * c\r\n const ccw = determinant > 0 ? 1 : -1\r\n\r\n // Since we only shear in x, we can use the x basis to get the x scale\r\n // and the rotation of the resulting matrix\r\n const sx = ccw * Math.sqrt(a * a + b * b)\r\n const thetaRad = Math.atan2(ccw * b, ccw * a)\r\n const theta = 180 / Math.PI * thetaRad\r\n const ct = Math.cos(thetaRad)\r\n const st = Math.sin(thetaRad)\r\n\r\n // We can then solve the y basis vector simultaneously to get the other\r\n // two affine parameters directly from these parameters\r\n const lam = (a * c + b * d) / determinant\r\n const sy = ((c * sx) / (lam * a - b)) || ((d * sx) / (lam * b + a))\r\n\r\n // Use the translations\r\n const tx = e - cx + cx * ct * sx + cy * (lam * ct * sx - st * sy)\r\n const ty = f - cy + cx * st * sx + cy * (lam * st * sx + ct * sy)\r\n\r\n // Construct the decomposition and return it\r\n return {\r\n // Return the affine parameters\r\n scaleX: sx,\r\n scaleY: sy,\r\n shear: lam,\r\n rotate: theta,\r\n translateX: tx,\r\n translateY: ty,\r\n originX: cx,\r\n originY: cy,\r\n\r\n // Return the matrix parameters\r\n a: this.a,\r\n b: this.b,\r\n c: this.c,\r\n d: this.d,\r\n e: this.e,\r\n f: this.f\r\n }\r\n }\n\n // Check if two matrices are equal\n equals (other) {\r\n if (other === this) return true\r\n const comp = new Matrix(other)\r\n return closeEnough(this.a, comp.a) && closeEnough(this.b, comp.b)\r\n && closeEnough(this.c, comp.c) && closeEnough(this.d, comp.d)\r\n && closeEnough(this.e, comp.e) && closeEnough(this.f, comp.f)\r\n }\n\n // Flip matrix on x or y, at a given offset\n flip (axis, around) {\r\n return this.clone().flipO(axis, around)\r\n }\n\n flipO (axis, around) {\r\n return axis === 'x'\n ? this.scaleO(-1, 1, around, 0)\r\n : axis === 'y'\n ? this.scaleO(1, -1, 0, around)\r\n : this.scaleO(-1, -1, axis, around || axis) // Define an x, y flip point\r\n }\n\n // Initialize\r\n init (source) {\r\n const base = Matrix.fromArray([ 1, 0, 0, 1, 0, 0 ])\r\n\r\n // ensure source as object\r\n source = source instanceof Element\n ? source.matrixify()\r\n : typeof source === 'string'\n ? Matrix.fromArray(source.split(delimiter).map(parseFloat))\r\n : Array.isArray(source)\n ? Matrix.fromArray(source)\r\n : (typeof source === 'object' && Matrix.isMatrixLike(source))\n ? source\r\n : (typeof source === 'object')\n ? new Matrix().transform(source)\r\n : arguments.length === 6\n ? Matrix.fromArray([].slice.call(arguments))\r\n : base\r\n\r\n // Merge the source matrix with the base matrix\r\n this.a = source.a != null ? source.a : base.a\r\n this.b = source.b != null ? source.b : base.b\r\n this.c = source.c != null ? source.c : base.c\r\n this.d = source.d != null ? source.d : base.d\r\n this.e = source.e != null ? source.e : base.e\r\n this.f = source.f != null ? source.f : base.f\r\n\r\n return this\r\n }\r\n\n inverse () {\r\n return this.clone().inverseO()\r\n }\n\n // Inverses matrix\n inverseO () {\r\n // Get the current parameters out of the matrix\r\n const a = this.a\r\n const b = this.b\r\n const c = this.c\r\n const d = this.d\r\n const e = this.e\r\n const f = this.f\r\n\r\n // Invert the 2x2 matrix in the top left\r\n const det = a * d - b * c\r\n if (!det) throw new Error('Cannot invert ' + this)\r\n\r\n // Calculate the top 2x2 matrix\r\n const na = d / det\r\n const nb = -b / det\r\n const nc = -c / det\r\n const nd = a / det\r\n\r\n // Apply the inverted matrix to the top right\r\n const ne = -(na * e + nc * f)\r\n const nf = -(nb * e + nd * f)\r\n\r\n // Construct the inverted matrix\r\n this.a = na\r\n this.b = nb\r\n this.c = nc\r\n this.d = nd\r\n this.e = ne\r\n this.f = nf\r\n\r\n return this\r\n }\n\n lmultiply (matrix) {\r\n return this.clone().lmultiplyO(matrix)\r\n }\n\n lmultiplyO (matrix) {\r\n const r = this\r\n const l = matrix instanceof Matrix\r\n ? matrix\r\n : new Matrix(matrix)\r\n\r\n return Matrix.matrixMultiply(l, r, this)\r\n }\n\n // Left multiplies by the given matrix\n multiply (matrix) {\r\n return this.clone().multiplyO(matrix)\r\n }\n\n multiplyO (matrix) {\r\n // Get the matrices\r\n const l = this\r\n const r = matrix instanceof Matrix\r\n ? matrix\r\n : new Matrix(matrix)\r\n\r\n return Matrix.matrixMultiply(l, r, this)\r\n }\n\n // Rotate matrix\n rotate (r, cx, cy) {\r\n return this.clone().rotateO(r, cx, cy)\r\n }\n\n rotateO (r, cx = 0, cy = 0) {\r\n // Convert degrees to radians\r\n r = radians(r)\r\n\r\n const cos = Math.cos(r)\r\n const sin = Math.sin(r)\r\n\r\n const { a, b, c, d, e, f } = this\r\n\r\n this.a = a * cos - b * sin\r\n this.b = b * cos + a * sin\r\n this.c = c * cos - d * sin\r\n this.d = d * cos + c * sin\r\n this.e = e * cos - f * sin + cy * sin - cx * cos + cx\r\n this.f = f * cos + e * sin - cx * sin - cy * cos + cy\r\n\r\n return this\r\n }\n\n // Scale matrix\n scale (x, y, cx, cy) {\r\n return this.clone().scaleO(...arguments)\r\n }\n\n scaleO (x, y = x, cx = 0, cy = 0) {\r\n // Support uniform scaling\r\n if (arguments.length === 3) {\r\n cy = cx\r\n cx = y\r\n y = x\r\n }\r\n\r\n const { a, b, c, d, e, f } = this\r\n\r\n this.a = a * x\r\n this.b = b * y\r\n this.c = c * x\r\n this.d = d * y\r\n this.e = e * x - cx * x + cx\r\n this.f = f * y - cy * y + cy\r\n\r\n return this\r\n }\n\n // Shear matrix\n shear (a, cx, cy) {\r\n return this.clone().shearO(a, cx, cy)\r\n }\n\n shearO (lx, cx = 0, cy = 0) {\r\n const { a, b, c, d, e, f } = this\r\n\r\n this.a = a + b * lx\r\n this.c = c + d * lx\r\n this.e = e + f * lx - cy * lx\r\n\r\n return this\r\n }\n\n // Skew Matrix\n skew (x, y, cx, cy) {\r\n return this.clone().skewO(...arguments)\r\n }\n\n skewO (x, y = x, cx = 0, cy = 0) {\r\n // support uniformal skew\r\n if (arguments.length === 3) {\r\n cy = cx\r\n cx = y\r\n y = x\r\n }\r\n\r\n // Convert degrees to radians\r\n x = radians(x)\r\n y = radians(y)\r\n\r\n const lx = Math.tan(x)\r\n const ly = Math.tan(y)\r\n\r\n const { a, b, c, d, e, f } = this\r\n\r\n this.a = a + b * lx\r\n this.b = b + a * ly\r\n this.c = c + d * lx\r\n this.d = d + c * ly\r\n this.e = e + f * lx - cy * lx\r\n this.f = f + e * ly - cx * ly\r\n\r\n return this\r\n }\n\n // SkewX\n skewX (x, cx, cy) {\r\n return this.skew(x, 0, cx, cy)\r\n }\n\n // SkewY\n skewY (y, cx, cy) {\r\n return this.skew(0, y, cx, cy)\r\n }\n\n toArray () {\r\n return [ this.a, this.b, this.c, this.d, this.e, this.f ]\r\n }\n\n // Convert matrix to string\n toString () {\r\n return 'matrix(' + this.a + ',' + this.b + ',' + this.c + ',' + this.d + ',' + this.e + ',' + this.f + ')'\r\n }\n\n // Transform a matrix into another matrix by manipulating the space\r\n transform (o) {\r\n // Check if o is a matrix and then left multiply it directly\r\n if (Matrix.isMatrixLike(o)) {\r\n const matrix = new Matrix(o)\r\n return matrix.multiplyO(this)\r\n }\r\n\r\n // Get the proposed transformations and the current transformations\r\n const t = Matrix.formatTransforms(o)\r\n const current = this\r\n const { x: ox, y: oy } = new Point(t.ox, t.oy).transform(current)\r\n\r\n // Construct the resulting matrix\r\n const transformer = new Matrix()\r\n .translateO(t.rx, t.ry)\r\n .lmultiplyO(current)\r\n .translateO(-ox, -oy)\r\n .scaleO(t.scaleX, t.scaleY)\r\n .skewO(t.skewX, t.skewY)\r\n .shearO(t.shear)\r\n .rotateO(t.theta)\r\n .translateO(ox, oy)\r\n\r\n // If we want the origin at a particular place, we force it there\r\n if (isFinite(t.px) || isFinite(t.py)) {\r\n const origin = new Point(ox, oy).transform(transformer)\r\n // TODO: Replace t.px with isFinite(t.px)\r\n // Doesnt work because t.px is also 0 if it wasnt passed\r\n const dx = isFinite(t.px) ? t.px - origin.x : 0\r\n const dy = isFinite(t.py) ? t.py - origin.y : 0\r\n transformer.translateO(dx, dy)\r\n }\r\n\r\n // Translate now after positioning\r\n transformer.translateO(t.tx, t.ty)\r\n return transformer\r\n }\r\n\n // Translate matrix\r\n translate (x, y) {\r\n return this.clone().translateO(x, y)\r\n }\r\n\n translateO (x, y) {\r\n this.e += x || 0\r\n this.f += y || 0\r\n return this\r\n }\r\n\n valueOf () {\r\n return {\r\n a: this.a,\r\n b: this.b,\r\n c: this.c,\r\n d: this.d,\r\n e: this.e,\r\n f: this.f\r\n }\r\n }\r\n\r\n}\r\n\r\nexport function ctm () {\r\n return new Matrix(this.node.getCTM())\r\n}\r\n\r\nexport function screenCTM () {\r\n /* https://bugzilla.mozilla.org/show_bug.cgi?id=1344537\r\n This is needed because FF does not return the transformation matrix\r\n for the inner coordinate system when getScreenCTM() is called on nested svgs.\r\n However all other Browsers do that */\r\n if (typeof this.isRoot === 'function' && !this.isRoot()) {\r\n const rect = this.rect(1, 1)\r\n const m = rect.node.getScreenCTM()\r\n rect.remove()\r\n return new Matrix(m)\r\n }\r\n return new Matrix(this.node.getScreenCTM())\r\n}\r\n\r\nregister(Matrix, 'Matrix')\r\n","import { globals } from '../../utils/window.js'\r\nimport { makeInstance } from '../../utils/adopter.js'\r\n\r\nexport default function parser () {\r\n // Reuse cached element if possible\r\n if (!parser.nodes) {\r\n const svg = makeInstance().size(2, 0)\r\n svg.node.style.cssText = [\r\n 'opacity: 0',\r\n 'position: absolute',\r\n 'left: -100%',\r\n 'top: -100%',\r\n 'overflow: hidden'\r\n ].join(';')\r\n\r\n svg.attr('focusable', 'false')\r\n svg.attr('aria-hidden', 'true')\r\n\r\n const path = svg.path().node\r\n\r\n parser.nodes = { svg, path }\r\n }\r\n\r\n if (!parser.nodes.svg.node.parentNode) {\r\n const b = globals.document.body || globals.document.documentElement\r\n parser.nodes.svg.addTo(b)\r\n }\r\n\r\n return parser.nodes\r\n}\r\n","import { delimiter } from '../modules/core/regex.js'\r\nimport { globals } from '../utils/window.js'\r\nimport { register } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Matrix from './Matrix.js'\r\nimport Point from './Point.js'\r\nimport parser from '../modules/core/parser.js'\r\n\r\nexport function isNulledBox (box) {\r\n return !box.width && !box.height && !box.x && !box.y\r\n}\r\n\r\nexport function domContains (node) {\r\n return node === globals.document\r\n || (globals.document.documentElement.contains || function (node) {\r\n // This is IE - it does not support contains() for top-level SVGs\r\n while (node.parentNode) {\r\n node = node.parentNode\r\n }\r\n return node === globals.document\r\n }).call(globals.document.documentElement, node)\r\n}\r\n\r\nexport default class Box {\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n addOffset () {\r\n // offset by window scroll position, because getBoundingClientRect changes when window is scrolled\r\n this.x += globals.window.pageXOffset\r\n this.y += globals.window.pageYOffset\r\n return new Box(this)\r\n }\r\n\r\n init (source) {\r\n const base = [ 0, 0, 0, 0 ]\r\n source = typeof source === 'string'\n ? source.split(delimiter).map(parseFloat)\r\n : Array.isArray(source)\n ? source\r\n : typeof source === 'object'\n ? [ source.left != null\n ? source.left\r\n : source.x, source.top != null ? source.top : source.y, source.width, source.height ]\r\n : arguments.length === 4\n ? [].slice.call(arguments)\r\n : base\r\n\r\n this.x = source[0] || 0\r\n this.y = source[1] || 0\r\n this.width = this.w = source[2] || 0\r\n this.height = this.h = source[3] || 0\r\n\r\n // Add more bounding box properties\r\n this.x2 = this.x + this.w\r\n this.y2 = this.y + this.h\r\n this.cx = this.x + this.w / 2\r\n this.cy = this.y + this.h / 2\r\n\r\n return this\r\n }\r\n\r\n isNulled () {\r\n return isNulledBox(this)\r\n }\r\n\r\n // Merge rect box with another, return a new instance\r\n merge (box) {\r\n const x = Math.min(this.x, box.x)\r\n const y = Math.min(this.y, box.y)\r\n const width = Math.max(this.x + this.width, box.x + box.width) - x\r\n const height = Math.max(this.y + this.height, box.y + box.height) - y\r\n\r\n return new Box(x, y, width, height)\r\n }\r\n\r\n toArray () {\r\n return [ this.x, this.y, this.width, this.height ]\r\n }\r\n\r\n toString () {\r\n return this.x + ' ' + this.y + ' ' + this.width + ' ' + this.height\r\n }\r\n\r\n transform (m) {\r\n if (!(m instanceof Matrix)) {\r\n m = new Matrix(m)\r\n }\r\n\r\n let xMin = Infinity\r\n let xMax = -Infinity\r\n let yMin = Infinity\r\n let yMax = -Infinity\r\n\r\n const pts = [\r\n new Point(this.x, this.y),\r\n new Point(this.x2, this.y),\r\n new Point(this.x, this.y2),\r\n new Point(this.x2, this.y2)\r\n ]\r\n\r\n pts.forEach(function (p) {\r\n p = p.transform(m)\r\n xMin = Math.min(xMin, p.x)\r\n xMax = Math.max(xMax, p.x)\r\n yMin = Math.min(yMin, p.y)\r\n yMax = Math.max(yMax, p.y)\r\n })\r\n\r\n return new Box(\r\n xMin, yMin,\r\n xMax - xMin,\r\n yMax - yMin\r\n )\r\n }\r\n\r\n}\r\n\r\nfunction getBox (el, getBBoxFn, retry) {\r\n let box\r\n\r\n try {\r\n // Try to get the box with the provided function\r\n box = getBBoxFn(el.node)\r\n\r\n // If the box is worthless and not even in the dom, retry\r\n // by throwing an error here...\r\n if (isNulledBox(box) && !domContains(el.node)) {\r\n throw new Error('Element not in the dom')\r\n }\r\n } catch (e) {\r\n // ... and calling the retry handler here\r\n box = retry(el)\r\n }\r\n\r\n return box\r\n}\r\n\r\nexport function bbox () {\r\n // Function to get bbox is getBBox()\r\n const getBBox = (node) => node.getBBox()\r\n\r\n // Take all measures so that a stupid browser renders the element\r\n // so we can get the bbox from it when we try again\r\n const retry = (el) => {\r\n try {\r\n const clone = el.clone().addTo(parser().svg).show()\r\n const box = clone.node.getBBox()\r\n clone.remove()\r\n return box\r\n } catch (e) {\r\n // We give up...\r\n throw new Error(`Getting bbox of element \"${el.node.nodeName}\" is not possible: ${e.toString()}`)\r\n }\r\n }\r\n\r\n const box = getBox(this, getBBox, retry)\r\n const bbox = new Box(box)\r\n\r\n return bbox\r\n}\r\n\r\nexport function rbox (el) {\r\n const getRBox = (node) => node.getBoundingClientRect()\r\n const retry = (el) => {\r\n // There is no point in trying tricks here because if we insert the element into the dom ourselves\r\n // it obviously will be at the wrong position\r\n throw new Error(`Getting rbox of element \"${el.node.nodeName}\" is not possible`)\r\n }\r\n\r\n const box = getBox(this, getRBox, retry)\r\n const rbox = new Box(box)\r\n\r\n // If an element was passed, we want the bbox in the coordinate system of that element\r\n if (el) {\r\n return rbox.transform(el.screenCTM().inverseO())\r\n }\r\n\r\n // Else we want it in absolute screen coordinates\r\n // Therefore we need to add the scrollOffset\r\n return rbox.addOffset()\r\n}\r\n\r\n// Checks whether the given point is inside the bounding box\r\nexport function inside (x, y) {\r\n const box = this.bbox()\r\n\r\n return x > box.x\r\n && y > box.y\r\n && x < box.x + box.width\r\n && y < box.y + box.height\r\n}\r\n\r\nregisterMethods({\r\n viewbox: {\r\n viewbox (x, y, width, height) {\r\n // act as getter\r\n if (x == null) return new Box(this.attr('viewBox'))\r\n\r\n // act as setter\r\n return this.attr('viewBox', new Box(x, y, width, height))\r\n },\r\n\r\n zoom (level, point) {\r\n // Its best to rely on the attributes here and here is why:\r\n // clientXYZ: Doesn't work on non-root svgs because they dont have a CSSBox (silly!)\r\n // getBoundingClientRect: Doesn't work because Chrome just ignores width and height of nested svgs completely\r\n // that means, their clientRect is always as big as the content.\r\n // Furthermore this size is incorrect if the element is further transformed by its parents\r\n // computedStyle: Only returns meaningful values if css was used with px. We dont go this route here!\r\n // getBBox: returns the bounding box of its content - that doesnt help!\r\n let { width, height } = this.attr([ 'width', 'height' ])\r\n\r\n // Width and height is a string when a number with a unit is present which we can't use\r\n // So we try clientXYZ\r\n if ((!width && !height) || (typeof width === 'string' || typeof height === 'string')) {\r\n width = this.node.clientWidth\r\n height = this.node.clientHeight\r\n }\r\n\r\n // Giving up...\r\n if (!width || !height) {\r\n throw new Error('Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element')\r\n }\r\n\r\n const v = this.viewbox()\r\n\r\n const zoomX = width / v.width\r\n const zoomY = height / v.height\r\n const zoom = Math.min(zoomX, zoomY)\r\n\r\n if (level == null) {\r\n return zoom\r\n }\r\n\r\n let zoomAmount = zoom / level\r\n\r\n // Set the zoomAmount to the highest value which is safe to process and recover from\r\n // The * 100 is a bit of wiggle room for the matrix transformation\r\n if (zoomAmount === Infinity) zoomAmount = Number.MAX_SAFE_INTEGER / 100\r\n\r\n point = point || new Point(width / 2 / zoomX + v.x, height / 2 / zoomY + v.y)\r\n\r\n const box = new Box(v).transform(\r\n new Matrix({ scale: zoomAmount, origin: point })\r\n )\r\n\r\n return this.viewbox(box)\r\n }\r\n }\r\n})\r\n\r\nregister(Box, 'Box')\r\n","import { extend } from '../utils/adopter.js'\r\n// import { subClassArray } from './ArrayPolyfill.js'\r\n\r\nclass List extends Array {\r\n constructor (arr = [], ...args) {\r\n super(arr, ...args)\r\n if (typeof arr === 'number') return this\r\n this.length = 0\r\n this.push(...arr)\r\n }\r\n}\r\n\r\n/* = subClassArray('List', Array, function (arr = []) {\r\n // This catches the case, that native map tries to create an array with new Array(1)\r\n if (typeof arr === 'number') return this\r\n this.length = 0\r\n this.push(...arr)\r\n}) */\r\n\r\nexport default List\r\n\r\nextend([ List ], {\r\n each (fnOrMethodName, ...args) {\r\n if (typeof fnOrMethodName === 'function') {\r\n return this.map((el, i, arr) => {\r\n return fnOrMethodName.call(el, el, i, arr)\r\n })\r\n } else {\r\n return this.map(el => {\r\n return el[fnOrMethodName](...args)\r\n })\r\n }\r\n },\r\n\r\n toArray () {\r\n return Array.prototype.concat.apply([], this)\r\n }\r\n})\r\n\r\nconst reserved = [ 'toArray', 'constructor', 'each' ]\r\n\r\nList.extend = function (methods) {\r\n methods = methods.reduce((obj, name) => {\r\n // Don't overwrite own methods\r\n if (reserved.includes(name)) return obj\r\n\r\n // Don't add private methods\r\n if (name[0] === '_') return obj\r\n\r\n // Relay every call to each()\r\n obj[name] = function (...attrs) {\r\n return this.each(name, ...attrs)\r\n }\r\n return obj\r\n }, {})\r\n\r\n extend([ List ], methods)\r\n}\r\n","import { adopt } from '../../utils/adopter.js'\r\nimport { globals } from '../../utils/window.js'\r\nimport { map } from '../../utils/utils.js'\r\nimport List from '../../types/List.js'\r\n\r\nexport default function baseFind (query, parent) {\r\n return new List(map((parent || globals.document).querySelectorAll(query), function (node) {\r\n return adopt(node)\r\n }))\r\n}\r\n\r\n// Scoped find method\r\nexport function find (query) {\r\n return baseFind(query, this.node)\r\n}\r\n\r\nexport function findOne (query) {\r\n return adopt(this.node.querySelector(query))\r\n}\r\n","import { delimiter } from './regex.js'\r\nimport { makeInstance } from '../../utils/adopter.js'\r\nimport { globals } from '../../utils/window.js'\r\n\r\nlet listenerId = 0\r\nexport const windowEvents = {}\r\n\r\nexport function getEvents (instance) {\r\n let n = instance.getEventHolder()\r\n\r\n // We dont want to save events in global space\r\n if (n === globals.window) n = windowEvents\r\n if (!n.events) n.events = {}\r\n return n.events\r\n}\r\n\r\nexport function getEventTarget (instance) {\r\n return instance.getEventTarget()\r\n}\r\n\r\nexport function clearEvents (instance) {\r\n let n = instance.getEventHolder()\r\n if (n === globals.window) n = windowEvents\r\n if (n.events) n.events = {}\r\n}\r\n\r\n// Add event binder in the SVG namespace\r\nexport function on (node, events, listener, binding, options) {\r\n const l = listener.bind(binding || node)\r\n const instance = makeInstance(node)\r\n const bag = getEvents(instance)\r\n const n = getEventTarget(instance)\r\n\r\n // events can be an array of events or a string of events\r\n events = Array.isArray(events) ? events : events.split(delimiter)\r\n\r\n // add id to listener\r\n if (!listener._svgjsListenerId) {\r\n listener._svgjsListenerId = ++listenerId\r\n }\r\n\r\n events.forEach(function (event) {\r\n const ev = event.split('.')[0]\r\n const ns = event.split('.')[1] || '*'\r\n\r\n // ensure valid object\r\n bag[ev] = bag[ev] || {}\r\n bag[ev][ns] = bag[ev][ns] || {}\r\n\r\n // reference listener\r\n bag[ev][ns][listener._svgjsListenerId] = l\r\n\r\n // add listener\r\n n.addEventListener(ev, l, options || false)\r\n })\r\n}\r\n\r\n// Add event unbinder in the SVG namespace\r\nexport function off (node, events, listener, options) {\r\n const instance = makeInstance(node)\r\n const bag = getEvents(instance)\r\n const n = getEventTarget(instance)\r\n\r\n // listener can be a function or a number\r\n if (typeof listener === 'function') {\r\n listener = listener._svgjsListenerId\r\n if (!listener) return\r\n }\r\n\r\n // events can be an array of events or a string or undefined\r\n events = Array.isArray(events) ? events : (events || '').split(delimiter)\r\n\r\n events.forEach(function (event) {\r\n const ev = event && event.split('.')[0]\r\n const ns = event && event.split('.')[1]\r\n let namespace, l\r\n\r\n if (listener) {\r\n // remove listener reference\r\n if (bag[ev] && bag[ev][ns || '*']) {\r\n // removeListener\r\n n.removeEventListener(ev, bag[ev][ns || '*'][listener], options || false)\r\n\r\n delete bag[ev][ns || '*'][listener]\r\n }\r\n } else if (ev && ns) {\r\n // remove all listeners for a namespaced event\r\n if (bag[ev] && bag[ev][ns]) {\r\n for (l in bag[ev][ns]) {\r\n off(n, [ ev, ns ].join('.'), l)\r\n }\r\n\r\n delete bag[ev][ns]\r\n }\r\n } else if (ns) {\r\n // remove all listeners for a specific namespace\r\n for (event in bag) {\r\n for (namespace in bag[event]) {\r\n if (ns === namespace) {\r\n off(n, [ event, ns ].join('.'))\r\n }\r\n }\r\n }\r\n } else if (ev) {\r\n // remove all listeners for the event\r\n if (bag[ev]) {\r\n for (namespace in bag[ev]) {\r\n off(n, [ ev, namespace ].join('.'))\r\n }\r\n\r\n delete bag[ev]\r\n }\r\n } else {\r\n // remove all listeners on a given node\r\n for (event in bag) {\r\n off(n, event)\r\n }\r\n\r\n clearEvents(instance)\r\n }\r\n })\r\n}\r\n\r\nexport function dispatch (node, event, data, options) {\r\n const n = getEventTarget(node)\r\n\r\n // Dispatch event\r\n if (event instanceof globals.window.Event) {\r\n n.dispatchEvent(event)\r\n } else {\r\n event = new globals.window.CustomEvent(event, { detail: data, cancelable: true, ...options })\r\n n.dispatchEvent(event)\r\n }\r\n return event\r\n}\r\n","import { dispatch, off, on } from '../modules/core/event.js'\r\nimport { register } from '../utils/adopter.js'\r\nimport Base from './Base.js'\r\n\r\nexport default class EventTarget extends Base {\r\n addEventListener () {}\r\n\r\n dispatch (event, data, options) {\r\n return dispatch(this, event, data, options)\r\n }\r\n\r\n dispatchEvent (event) {\r\n const bag = this.getEventHolder().events\r\n if (!bag) return true\r\n\r\n const events = bag[event.type]\r\n\r\n for (const i in events) {\r\n for (const j in events[i]) {\r\n events[i][j](event)\r\n }\r\n }\r\n\r\n return !event.defaultPrevented\r\n }\r\n\r\n // Fire given event\r\n fire (event, data, options) {\r\n this.dispatch(event, data, options)\r\n return this\r\n }\r\n\r\n getEventHolder () {\r\n return this\r\n }\r\n\r\n getEventTarget () {\r\n return this\r\n }\r\n\r\n // Unbind event from listener\r\n off (event, listener) {\r\n off(this, event, listener)\r\n return this\r\n }\r\n\r\n // Bind given event to listener\r\n on (event, listener, binding, options) {\r\n on(this, event, listener, binding, options)\r\n return this\r\n }\r\n\r\n removeEventListener () {}\r\n}\r\n\r\nregister(EventTarget, 'EventTarget')\r\n","\r\nexport function noop () {}\r\n\r\n// Default animation values\r\nexport const timeline = {\r\n duration: 400,\r\n ease: '>',\r\n delay: 0\r\n}\r\n\r\n// Default attribute values\r\nexport const attrs = {\r\n\r\n // fill and stroke\r\n 'fill-opacity': 1,\r\n 'stroke-opacity': 1,\r\n 'stroke-width': 0,\r\n 'stroke-linejoin': 'miter',\r\n 'stroke-linecap': 'butt',\r\n fill: '#000000',\r\n stroke: '#000000',\r\n opacity: 1,\r\n\r\n // position\r\n x: 0,\r\n y: 0,\r\n cx: 0,\r\n cy: 0,\r\n\r\n // size\r\n width: 0,\r\n height: 0,\r\n\r\n // radius\r\n r: 0,\r\n rx: 0,\r\n ry: 0,\r\n\r\n // gradient\r\n offset: 0,\r\n 'stop-opacity': 1,\r\n 'stop-color': '#000000',\r\n\r\n // text\r\n 'text-anchor': 'start'\r\n}\r\n","import { delimiter } from '../modules/core/regex.js'\r\n\r\nexport default class SVGArray extends Array {\r\n constructor (...args) {\r\n super(...args)\r\n this.init(...args)\r\n }\r\n\r\n clone () {\r\n return new this.constructor(this)\r\n }\n\n init (arr) {\r\n // This catches the case, that native map tries to create an array with new Array(1)\r\n if (typeof arr === 'number') return this\r\n this.length = 0\r\n this.push(...this.parse(arr))\r\n return this\r\n }\r\n\r\n // Parse whitespace separated string\n parse (array = []) {\r\n // If already is an array, no need to parse it\r\n if (array instanceof Array) return array\r\n\r\n return array.trim().split(delimiter).map(parseFloat)\r\n }\n\n toArray () {\r\n return Array.prototype.concat.apply([], this)\r\n }\r\n\r\n toSet () {\r\n return new Set(this)\r\n }\n\n toString () {\r\n return this.join(' ')\r\n }\r\n\r\n // Flattens the array if needed\r\n valueOf () {\r\n const ret = []\r\n ret.push(...this)\r\n return ret\r\n }\r\n\r\n}\r\n","import { numberAndUnit } from '../modules/core/regex.js'\r\n\r\n// Module for unit conversions\r\nexport default class SVGNumber {\r\n // Initialize\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n convert (unit) {\r\n return new SVGNumber(this.value, unit)\r\n }\r\n\r\n // Divide number\r\n divide (number) {\r\n number = new SVGNumber(number)\r\n return new SVGNumber(this / number, this.unit || number.unit)\r\n }\r\n\r\n init (value, unit) {\r\n unit = Array.isArray(value) ? value[1] : unit\r\n value = Array.isArray(value) ? value[0] : value\r\n\r\n // initialize defaults\r\n this.value = 0\r\n this.unit = unit || ''\r\n\r\n // parse value\r\n if (typeof value === 'number') {\r\n // ensure a valid numeric value\r\n this.value = isNaN(value) ? 0 : !isFinite(value) ? (value < 0 ? -3.4e+38 : +3.4e+38) : value\r\n } else if (typeof value === 'string') {\r\n unit = value.match(numberAndUnit)\r\n\r\n if (unit) {\r\n // make value numeric\r\n this.value = parseFloat(unit[1])\r\n\r\n // normalize\r\n if (unit[5] === '%') {\r\n this.value /= 100\r\n } else if (unit[5] === 's') {\r\n this.value *= 1000\r\n }\r\n\r\n // store unit\r\n this.unit = unit[5]\r\n }\r\n } else {\r\n if (value instanceof SVGNumber) {\r\n this.value = value.valueOf()\r\n this.unit = value.unit\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Subtract number\r\n minus (number) {\r\n number = new SVGNumber(number)\r\n return new SVGNumber(this - number, this.unit || number.unit)\r\n }\r\n\r\n // Add number\r\n plus (number) {\r\n number = new SVGNumber(number)\r\n return new SVGNumber(this + number, this.unit || number.unit)\r\n }\r\n\r\n // Multiply number\r\n times (number) {\r\n number = new SVGNumber(number)\r\n return new SVGNumber(this * number, this.unit || number.unit)\r\n }\r\n\r\n toArray () {\r\n return [ this.value, this.unit ]\r\n }\r\n\r\n toJSON () {\r\n return this.toString()\r\n }\r\n\r\n toString () {\r\n return (this.unit === '%'\n ? ~~(this.value * 1e8) / 1e6\r\n : this.unit === 's'\n ? this.value / 1e3\r\n : this.value\r\n ) + this.unit\r\n }\r\n\r\n valueOf () {\r\n return this.value\r\n }\r\n\r\n}\r\n","import { attrs as defaults } from './defaults.js'\r\nimport { isNumber } from './regex.js'\r\nimport Color from '../../types/Color.js'\r\nimport SVGArray from '../../types/SVGArray.js'\r\nimport SVGNumber from '../../types/SVGNumber.js'\r\n\r\nconst hooks = []\r\nexport function registerAttrHook (fn) {\r\n hooks.push(fn)\r\n}\r\n\r\n// Set svg element attribute\r\nexport default function attr (attr, val, ns) {\r\n // act as full getter\r\n if (attr == null) {\r\n // get an object of attributes\r\n attr = {}\r\n val = this.node.attributes\r\n\r\n for (const node of val) {\r\n attr[node.nodeName] = isNumber.test(node.nodeValue)\r\n ? parseFloat(node.nodeValue)\r\n : node.nodeValue\r\n }\r\n\r\n return attr\r\n } else if (attr instanceof Array) {\r\n // loop through array and get all values\r\n return attr.reduce((last, curr) => {\r\n last[curr] = this.attr(curr)\r\n return last\r\n }, {})\r\n } else if (typeof attr === 'object' && attr.constructor === Object) {\r\n // apply every attribute individually if an object is passed\r\n for (val in attr) this.attr(val, attr[val])\r\n } else if (val === null) {\r\n // remove value\r\n this.node.removeAttribute(attr)\r\n } else if (val == null) {\r\n // act as a getter if the first and only argument is not an object\r\n val = this.node.getAttribute(attr)\r\n return val == null\n ? defaults[attr]\r\n : isNumber.test(val)\n ? parseFloat(val)\r\n : val\r\n } else {\r\n // Loop through hooks and execute them to convert value\r\n val = hooks.reduce((_val, hook) => {\r\n return hook(attr, _val, this)\r\n }, val)\r\n\r\n // ensure correct numeric values (also accepts NaN and Infinity)\r\n if (typeof val === 'number') {\r\n val = new SVGNumber(val)\r\n } else if (Color.isColor(val)) {\r\n // ensure full hex color\r\n val = new Color(val)\r\n } else if (val.constructor === Array) {\r\n // Check for plain arrays and parse array values\r\n val = new SVGArray(val)\r\n }\r\n\r\n // if the passed attribute is leading...\r\n if (attr === 'leading') {\r\n // ... call the leading method instead\r\n if (this.leading) {\r\n this.leading(val)\r\n }\r\n } else {\r\n // set given attribute on node\r\n typeof ns === 'string'\n ? this.node.setAttributeNS(ns, attr, val.toString())\r\n : this.node.setAttribute(attr, val.toString())\r\n }\r\n\r\n // rebuild if required\r\n if (this.rebuild && (attr === 'font-size' || attr === 'x')) {\r\n this.rebuild()\r\n }\r\n }\r\n\r\n return this\r\n}\r\n","import {\r\n adopt,\r\n assignNewId,\r\n eid,\r\n extend,\r\n makeInstance,\r\n create,\r\n register\r\n} from '../utils/adopter.js'\r\nimport { find, findOne } from '../modules/core/selector.js'\r\nimport { globals } from '../utils/window.js'\r\nimport { map } from '../utils/utils.js'\r\nimport { svg, html } from '../modules/core/namespaces.js'\r\nimport EventTarget from '../types/EventTarget.js'\r\nimport List from '../types/List.js'\r\nimport attr from '../modules/core/attr.js'\r\n\r\nexport default class Dom extends EventTarget {\r\n constructor (node, attrs) {\r\n super()\r\n this.node = node\r\n this.type = node.nodeName\r\n\r\n if (attrs && node !== attrs) {\r\n this.attr(attrs)\r\n }\r\n }\r\n\r\n // Add given element at a position\r\n add (element, i) {\r\n element = makeInstance(element)\r\n\r\n // If non-root svg nodes are added we have to remove their namespaces\r\n if (element.removeNamespace && this.node instanceof globals.window.SVGElement) {\r\n element.removeNamespace()\r\n }\r\n\r\n if (i == null) {\r\n this.node.appendChild(element.node)\r\n } else if (element.node !== this.node.childNodes[i]) {\r\n this.node.insertBefore(element.node, this.node.childNodes[i])\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Add element to given container and return self\r\n addTo (parent, i) {\r\n return makeInstance(parent).put(this, i)\r\n }\r\n\r\n // Returns all child elements\r\n children () {\r\n return new List(map(this.node.children, function (node) {\r\n return adopt(node)\r\n }))\r\n }\r\n\r\n // Remove all elements in this container\r\n clear () {\r\n // remove children\r\n while (this.node.hasChildNodes()) {\r\n this.node.removeChild(this.node.lastChild)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Clone element\r\n clone (deep = true) {\r\n // write dom data to the dom so the clone can pickup the data\r\n this.writeDataToDom()\r\n\r\n // clone element and assign new id\r\n return new this.constructor(assignNewId(this.node.cloneNode(deep)))\r\n }\r\n\r\n // Iterates over all children and invokes a given block\r\n each (block, deep) {\r\n const children = this.children()\r\n let i, il\r\n\r\n for (i = 0, il = children.length; i < il; i++) {\r\n block.apply(children[i], [ i, children ])\r\n\r\n if (deep) {\r\n children[i].each(block, deep)\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n element (nodeName, attrs) {\r\n return this.put(new Dom(create(nodeName), attrs))\r\n }\r\n\r\n // Get first child\r\n first () {\r\n return adopt(this.node.firstChild)\r\n }\r\n\r\n // Get a element at the given index\r\n get (i) {\r\n return adopt(this.node.childNodes[i])\r\n }\r\n\r\n getEventHolder () {\r\n return this.node\r\n }\r\n\r\n getEventTarget () {\r\n return this.node\r\n }\r\n\r\n // Checks if the given element is a child\r\n has (element) {\r\n return this.index(element) >= 0\r\n }\r\n\r\n html (htmlOrFn, outerHTML) {\r\n return this.xml(htmlOrFn, outerHTML, html)\r\n }\r\n\r\n // Get / set id\r\n id (id) {\r\n // generate new id if no id set\r\n if (typeof id === 'undefined' && !this.node.id) {\r\n this.node.id = eid(this.type)\r\n }\r\n\r\n // don't set directly with this.node.id to make `null` work correctly\r\n return this.attr('id', id)\r\n }\r\n\r\n // Gets index of given element\r\n index (element) {\r\n return [].slice.call(this.node.childNodes).indexOf(element.node)\r\n }\r\n\r\n // Get the last child\r\n last () {\r\n return adopt(this.node.lastChild)\r\n }\r\n\r\n // matches the element vs a css selector\r\n matches (selector) {\r\n const el = this.node\r\n const matcher = el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector || null\r\n return matcher && matcher.call(el, selector)\r\n }\r\n\r\n // Returns the parent element instance\r\n parent (type) {\r\n let parent = this\r\n\r\n // check for parent\r\n if (!parent.node.parentNode) return null\r\n\r\n // get parent element\r\n parent = adopt(parent.node.parentNode)\r\n\r\n if (!type) return parent\r\n\r\n // loop trough ancestors if type is given\r\n do {\r\n if (typeof type === 'string' ? parent.matches(type) : parent instanceof type) return parent\r\n } while ((parent = adopt(parent.node.parentNode)))\r\n\r\n return parent\r\n }\r\n\r\n // Basically does the same as `add()` but returns the added element instead\r\n put (element, i) {\r\n element = makeInstance(element)\r\n this.add(element, i)\r\n return element\r\n }\r\n\r\n // Add element to given container and return container\r\n putIn (parent, i) {\r\n return makeInstance(parent).add(this, i)\r\n }\r\n\r\n // Remove element\r\n remove () {\r\n if (this.parent()) {\r\n this.parent().removeElement(this)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Remove a given child\r\n removeElement (element) {\r\n this.node.removeChild(element.node)\r\n\r\n return this\r\n }\r\n\r\n // Replace this with element\r\n replace (element) {\r\n element = makeInstance(element)\r\n\r\n if (this.node.parentNode) {\r\n this.node.parentNode.replaceChild(element.node, this.node)\r\n }\r\n\r\n return element\r\n }\r\n\r\n round (precision = 2, map = null) {\r\n const factor = 10 ** precision\r\n const attrs = this.attr(map)\r\n\r\n for (const i in attrs) {\r\n if (typeof attrs[i] === 'number') {\r\n attrs[i] = Math.round(attrs[i] * factor) / factor\r\n }\r\n }\r\n\r\n this.attr(attrs)\r\n return this\r\n }\r\n\r\n // Import / Export raw svg\r\n svg (svgOrFn, outerSVG) {\r\n return this.xml(svgOrFn, outerSVG, svg)\r\n }\r\n\r\n // Return id on string conversion\r\n toString () {\r\n return this.id()\r\n }\r\n\r\n words (text) {\r\n // This is faster than removing all children and adding a new one\r\n this.node.textContent = text\r\n return this\r\n }\r\n\r\n wrap (node) {\r\n const parent = this.parent()\r\n\r\n if (!parent) {\r\n return this.addTo(node)\r\n }\r\n\r\n const position = parent.index(this)\r\n return parent.put(node, position).put(this)\r\n }\r\n\r\n // write svgjs data to the dom\r\n writeDataToDom () {\r\n // dump variables recursively\r\n this.each(function () {\r\n this.writeDataToDom()\r\n })\r\n\r\n return this\r\n }\r\n\r\n // Import / Export raw svg\r\n xml (xmlOrFn, outerXML, ns) {\r\n if (typeof xmlOrFn === 'boolean') {\r\n ns = outerXML\r\n outerXML = xmlOrFn\r\n xmlOrFn = null\r\n }\r\n\r\n // act as getter if no svg string is given\r\n if (xmlOrFn == null || typeof xmlOrFn === 'function') {\r\n // The default for exports is, that the outerNode is included\r\n outerXML = outerXML == null ? true : outerXML\r\n\r\n // write svgjs data to the dom\r\n this.writeDataToDom()\r\n let current = this\r\n\r\n // An export modifier was passed\r\n if (xmlOrFn != null) {\r\n current = adopt(current.node.cloneNode(true))\r\n\r\n // If the user wants outerHTML we need to process this node, too\r\n if (outerXML) {\r\n const result = xmlOrFn(current)\r\n current = result || current\r\n\r\n // The user does not want this node? Well, then he gets nothing\r\n if (result === false) return ''\r\n }\r\n\r\n // Deep loop through all children and apply modifier\r\n current.each(function () {\r\n const result = xmlOrFn(this)\r\n const _this = result || this\r\n\r\n // If modifier returns false, discard node\r\n if (result === false) {\r\n this.remove()\r\n\r\n // If modifier returns new node, use it\r\n } else if (result && this !== _this) {\r\n this.replace(_this)\r\n }\r\n }, true)\r\n }\r\n\r\n // Return outer or inner content\r\n return outerXML\r\n ? current.node.outerHTML\r\n : current.node.innerHTML\r\n }\r\n\r\n // Act as setter if we got a string\r\n\r\n // The default for import is, that the current node is not replaced\r\n outerXML = outerXML == null ? false : outerXML\r\n\r\n // Create temporary holder\r\n const well = create('wrapper', ns)\r\n const fragment = globals.document.createDocumentFragment()\r\n\r\n // Dump raw svg\r\n well.innerHTML = xmlOrFn\r\n\r\n // Transplant nodes into the fragment\r\n for (let len = well.children.length; len--;) {\r\n fragment.appendChild(well.firstElementChild)\r\n }\r\n\r\n const parent = this.parent()\r\n\r\n // Add the whole fragment at once\r\n return outerXML\r\n ? this.replace(fragment) && parent\r\n : this.add(fragment)\r\n }\r\n}\r\n\r\nextend(Dom, { attr, find, findOne })\r\nregister(Dom, 'Dom')\r\n","import { bbox, rbox, inside } from '../types/Box.js'\r\nimport { ctm, screenCTM } from '../types/Matrix.js'\r\nimport {\r\n extend,\r\n getClass,\r\n makeInstance,\r\n register,\r\n root\r\n} from '../utils/adopter.js'\r\nimport { globals } from '../utils/window.js'\r\nimport { point } from '../types/Point.js'\r\nimport { proportionalSize } from '../utils/utils.js'\r\nimport { reference } from '../modules/core/regex.js'\r\nimport Dom from './Dom.js'\r\nimport List from '../types/List.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\n\r\nexport default class Element extends Dom {\r\n constructor (node, attrs) {\r\n super(node, attrs)\r\n\r\n // initialize data object\r\n this.dom = {}\r\n\r\n // create circular reference\r\n this.node.instance = this\r\n\r\n if (node.hasAttribute('svgjs:data')) {\r\n // pull svgjs data from the dom (getAttributeNS doesn't work in html5)\r\n this.setData(JSON.parse(node.getAttribute('svgjs:data')) || {})\r\n }\r\n }\r\n\r\n // Move element by its center\r\n center (x, y) {\r\n return this.cx(x).cy(y)\r\n }\r\n\r\n // Move by center over x-axis\r\n cx (x) {\r\n return x == null\r\n ? this.x() + this.width() / 2\r\n : this.x(x - this.width() / 2)\r\n }\r\n\r\n // Move by center over y-axis\r\n cy (y) {\r\n return y == null\r\n ? this.y() + this.height() / 2\r\n : this.y(y - this.height() / 2)\r\n }\r\n\r\n // Get defs\r\n defs () {\r\n const root = this.root()\r\n return root && root.defs()\r\n }\r\n\r\n // Relative move over x and y axes\r\n dmove (x, y) {\r\n return this.dx(x).dy(y)\r\n }\r\n\r\n // Relative move over x axis\r\n dx (x = 0) {\r\n return this.x(new SVGNumber(x).plus(this.x()))\r\n }\r\n\r\n // Relative move over y axis\r\n dy (y = 0) {\r\n return this.y(new SVGNumber(y).plus(this.y()))\r\n }\r\n\r\n getEventHolder () {\r\n return this\r\n }\n\n // Set height of element\n height (height) {\r\n return this.attr('height', height)\r\n }\n\n // Move element to given x and y values\n move (x, y) {\r\n return this.x(x).y(y)\r\n }\n\n // return array of all ancestors of given type up to the root svg\n parents (until = this.root()) {\r\n until = makeInstance(until)\r\n const parents = new List()\r\n let parent = this\r\n\r\n while (\r\n (parent = parent.parent())\r\n && parent.node !== globals.document\r\n && parent.nodeName !== '#document-fragment') {\r\n\r\n parents.push(parent)\r\n\r\n if (parent.node === until.node) {\r\n break\r\n }\r\n }\r\n\r\n return parents\r\n }\n\n // Get referenced element form attribute value\n reference (attr) {\r\n attr = this.attr(attr)\r\n if (!attr) return null\r\n\r\n const m = (attr + '').match(reference)\r\n return m ? makeInstance(m[1]) : null\r\n }\n\n // Get parent document\r\n root () {\r\n const p = this.parent(getClass(root))\r\n return p && p.root()\r\n }\r\n\r\n // set given data to the elements data property\r\n setData (o) {\r\n this.dom = o\r\n return this\r\n }\r\n\r\n // Set element size to given width and height\r\n size (width, height) {\r\n const p = proportionalSize(this, width, height)\r\n\r\n return this\r\n .width(new SVGNumber(p.width))\r\n .height(new SVGNumber(p.height))\r\n }\r\n\r\n // Set width of element\r\n width (width) {\r\n return this.attr('width', width)\r\n }\r\n\r\n // write svgjs data to the dom\r\n writeDataToDom () {\r\n // remove previously set data\r\n this.node.removeAttribute('svgjs:data')\r\n\r\n if (Object.keys(this.dom).length) {\r\n this.node.setAttribute('svgjs:data', JSON.stringify(this.dom)) // see #428\r\n }\r\n\r\n return super.writeDataToDom()\r\n }\r\n\r\n // Move over x-axis\r\n x (x) {\r\n return this.attr('x', x)\r\n }\r\n\r\n // Move over y-axis\r\n y (y) {\r\n return this.attr('y', y)\r\n }\r\n}\r\n\r\nextend(Element, {\r\n bbox, rbox, inside, point, ctm, screenCTM\r\n})\r\n\r\nregister(Element, 'Element')\r\n","import { registerMethods } from '../../utils/methods.js'\r\nimport Color from '../../types/Color.js'\r\nimport Element from '../../elements/Element.js'\r\nimport Matrix from '../../types/Matrix.js'\r\nimport Point from '../../types/Point.js'\r\nimport SVGNumber from '../../types/SVGNumber.js'\r\n\r\n// Define list of available attributes for stroke and fill\r\nconst sugar = {\r\n stroke: [ 'color', 'width', 'opacity', 'linecap', 'linejoin', 'miterlimit', 'dasharray', 'dashoffset' ],\r\n fill: [ 'color', 'opacity', 'rule' ],\r\n prefix: function (t, a) {\r\n return a === 'color' ? t : t + '-' + a\r\n }\r\n}\r\n\r\n// Add sugar for fill and stroke\r\n;[ 'fill', 'stroke' ].forEach(function (m) {\r\n const extension = {}\r\n let i\r\n\r\n extension[m] = function (o) {\r\n if (typeof o === 'undefined') {\r\n return this.attr(m)\r\n }\r\n if (typeof o === 'string' || o instanceof Color || Color.isRgb(o) || (o instanceof Element)) {\r\n this.attr(m, o)\r\n } else {\r\n // set all attributes from sugar.fill and sugar.stroke list\r\n for (i = sugar[m].length - 1; i >= 0; i--) {\r\n if (o[sugar[m][i]] != null) {\r\n this.attr(sugar.prefix(m, sugar[m][i]), o[sugar[m][i]])\r\n }\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n registerMethods([ 'Element', 'Runner' ], extension)\r\n})\r\n\r\nregisterMethods([ 'Element', 'Runner' ], {\r\n // Let the user set the matrix directly\r\n matrix: function (mat, b, c, d, e, f) {\r\n // Act as a getter\r\n if (mat == null) {\r\n return new Matrix(this)\r\n }\r\n\r\n // Act as a setter, the user can pass a matrix or a set of numbers\r\n return this.attr('transform', new Matrix(mat, b, c, d, e, f))\r\n },\r\n\r\n // Map rotation to transform\r\n rotate: function (angle, cx, cy) {\r\n return this.transform({ rotate: angle, ox: cx, oy: cy }, true)\r\n },\r\n\r\n // Map skew to transform\r\n skew: function (x, y, cx, cy) {\r\n return arguments.length === 1 || arguments.length === 3\r\n ? this.transform({ skew: x, ox: y, oy: cx }, true)\r\n : this.transform({ skew: [ x, y ], ox: cx, oy: cy }, true)\r\n },\r\n\r\n shear: function (lam, cx, cy) {\r\n return this.transform({ shear: lam, ox: cx, oy: cy }, true)\r\n },\r\n\r\n // Map scale to transform\r\n scale: function (x, y, cx, cy) {\r\n return arguments.length === 1 || arguments.length === 3\r\n ? this.transform({ scale: x, ox: y, oy: cx }, true)\r\n : this.transform({ scale: [ x, y ], ox: cx, oy: cy }, true)\r\n },\r\n\r\n // Map translate to transform\r\n translate: function (x, y) {\r\n return this.transform({ translate: [ x, y ] }, true)\r\n },\r\n\r\n // Map relative translations to transform\r\n relative: function (x, y) {\r\n return this.transform({ relative: [ x, y ] }, true)\r\n },\r\n\r\n // Map flip to transform\r\n flip: function (direction = 'both', origin = 'center') {\r\n if ('xybothtrue'.indexOf(direction) === -1) {\r\n origin = direction\r\n direction = 'both'\r\n }\r\n\r\n return this.transform({ flip: direction, origin: origin }, true)\r\n },\r\n\r\n // Opacity\r\n opacity: function (value) {\r\n return this.attr('opacity', value)\r\n }\r\n})\r\n\r\nregisterMethods('radius', {\r\n // Add x and y radius\r\n radius: function (x, y = x) {\r\n const type = (this._element || this).type\r\n return type === 'radialGradient'\r\n ? this.attr('r', new SVGNumber(x))\r\n : this.rx(x).ry(y)\r\n }\r\n})\r\n\r\nregisterMethods('Path', {\r\n // Get path length\r\n length: function () {\r\n return this.node.getTotalLength()\r\n },\r\n // Get point at length\r\n pointAt: function (length) {\r\n return new Point(this.node.getPointAtLength(length))\r\n }\r\n})\r\n\r\nregisterMethods([ 'Element', 'Runner' ], {\r\n // Set font\r\n font: function (a, v) {\r\n if (typeof a === 'object') {\r\n for (v in a) this.font(v, a[v])\r\n return this\r\n }\r\n\r\n return a === 'leading'\r\n ? this.leading(v)\r\n : a === 'anchor'\r\n ? this.attr('text-anchor', v)\r\n : a === 'size' || a === 'family' || a === 'weight' || a === 'stretch' || a === 'variant' || a === 'style'\r\n ? this.attr('font-' + a, v)\r\n : this.attr(a, v)\r\n }\r\n})\r\n\r\n// Add events to elements\r\nconst methods = [ 'click',\r\n 'dblclick',\r\n 'mousedown',\r\n 'mouseup',\r\n 'mouseover',\r\n 'mouseout',\r\n 'mousemove',\r\n 'mouseenter',\r\n 'mouseleave',\r\n 'touchstart',\r\n 'touchmove',\r\n 'touchleave',\r\n 'touchend',\r\n 'touchcancel' ].reduce(function (last, event) {\r\n // add event to Element\r\n const fn = function (f) {\r\n if (f === null) {\r\n this.off(event)\r\n } else {\r\n this.on(event, f)\r\n }\r\n return this\r\n }\r\n\r\n last[event] = fn\r\n return last\r\n}, {})\r\n\r\nregisterMethods('Element', methods)\r\n","import { getOrigin } from '../../utils/utils.js'\r\nimport { delimiter, transforms } from '../core/regex.js'\r\nimport { registerMethods } from '../../utils/methods.js'\r\nimport Matrix from '../../types/Matrix.js'\r\n\r\n// Reset all transformations\r\nexport function untransform () {\r\n return this.attr('transform', null)\r\n}\r\n\r\n// merge the whole transformation chain into one matrix and returns it\r\nexport function matrixify () {\r\n const matrix = (this.attr('transform') || '')\r\n // split transformations\r\n .split(transforms).slice(0, -1).map(function (str) {\r\n // generate key => value pairs\r\n const kv = str.trim().split('(')\r\n return [ kv[0],\r\n kv[1].split(delimiter)\r\n .map(function (str) {\r\n return parseFloat(str)\r\n })\r\n ]\r\n })\r\n .reverse()\r\n // merge every transformation into one matrix\r\n .reduce(function (matrix, transform) {\r\n if (transform[0] === 'matrix') {\r\n return matrix.lmultiply(Matrix.fromArray(transform[1]))\r\n }\r\n return matrix[transform[0]].apply(matrix, transform[1])\r\n }, new Matrix())\r\n\r\n return matrix\r\n}\r\n\r\n// add an element to another parent without changing the visual representation on the screen\r\nexport function toParent (parent, i) {\r\n if (this === parent) return this\r\n const ctm = this.screenCTM()\r\n const pCtm = parent.screenCTM().inverse()\r\n\r\n this.addTo(parent, i).untransform().transform(pCtm.multiply(ctm))\r\n\r\n return this\r\n}\r\n\r\n// same as above with parent equals root-svg\r\nexport function toRoot (i) {\r\n return this.toParent(this.root(), i)\r\n}\r\n\r\n// Add transformations\r\nexport function transform (o, relative) {\r\n // Act as a getter if no object was passed\r\n if (o == null || typeof o === 'string') {\r\n const decomposed = new Matrix(this).decompose()\r\n return o == null ? decomposed : decomposed[o]\r\n }\r\n\r\n if (!Matrix.isMatrixLike(o)) {\r\n // Set the origin according to the defined transform\r\n o = { ...o, origin: getOrigin(o, this) }\r\n }\r\n\r\n // The user can pass a boolean, an Element or an Matrix or nothing\r\n const cleanRelative = relative === true ? this : (relative || false)\r\n const result = new Matrix(cleanRelative).transform(o)\r\n return this.attr('transform', result)\r\n}\r\n\r\nregisterMethods('Element', {\r\n untransform, matrixify, toParent, toRoot, transform\r\n})\r\n","import { register } from '../utils/adopter.js'\r\nimport Element from './Element.js'\r\n\r\nexport default class Container extends Element {\r\n flatten (parent = this, index) {\r\n this.each(function () {\r\n if (this instanceof Container) {\r\n return this.flatten().ungroup()\r\n }\r\n })\r\n\r\n return this\r\n }\r\n\r\n ungroup (parent = this.parent(), index = parent.index(this)) {\r\n // when parent != this, we want append all elements to the end\r\n index = index === -1 ? parent.children().length : index\r\n\r\n this.each(function (i, children) {\r\n // reverse each\r\n return children[children.length - i - 1].toParent(parent, index)\r\n })\r\n\r\n return this.remove()\r\n }\r\n}\r\n\r\nregister(Container, 'Container')\r\n","import { nodeOrNew, register } from '../utils/adopter.js'\r\nimport Container from './Container.js'\r\n\r\nexport default class Defs extends Container {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('defs', node), attrs)\r\n }\r\n\r\n flatten () {\r\n return this\r\n }\r\n\r\n ungroup () {\r\n return this\r\n }\r\n}\r\n\r\nregister(Defs, 'Defs')\r\n","import { register } from '../utils/adopter.js'\r\nimport Element from './Element.js'\r\n\r\nexport default class Shape extends Element {}\r\n\r\nregister(Shape, 'Shape')\r\n","import SVGNumber from '../../types/SVGNumber.js'\r\n\r\n// Radius x value\r\nexport function rx (rx) {\r\n return this.attr('rx', rx)\r\n}\r\n\r\n// Radius y value\r\nexport function ry (ry) {\r\n return this.attr('ry', ry)\r\n}\r\n\r\n// Move over x-axis\r\nexport function x (x) {\r\n return x == null\r\n ? this.cx() - this.rx()\r\n : this.cx(x + this.rx())\r\n}\r\n\r\n// Move over y-axis\r\nexport function y (y) {\r\n return y == null\r\n ? this.cy() - this.ry()\r\n : this.cy(y + this.ry())\r\n}\r\n\r\n// Move by center over x-axis\r\nexport function cx (x) {\r\n return this.attr('cx', x)\r\n}\r\n\r\n// Move by center over y-axis\r\nexport function cy (y) {\r\n return this.attr('cy', y)\r\n}\r\n\r\n// Set width of element\r\nexport function width (width) {\r\n return width == null\r\n ? this.rx() * 2\r\n : this.rx(new SVGNumber(width).divide(2))\r\n}\r\n\r\n// Set height of element\r\nexport function height (height) {\r\n return height == null\r\n ? this.ry() * 2\r\n : this.ry(new SVGNumber(height).divide(2))\r\n}\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { proportionalSize } from '../utils/utils.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport Shape from './Shape.js'\r\nimport * as circled from '../modules/core/circled.js'\r\n\r\nexport default class Ellipse extends Shape {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('ellipse', node), attrs)\r\n }\r\n\r\n size (width, height) {\r\n const p = proportionalSize(this, width, height)\r\n\r\n return this\r\n .rx(new SVGNumber(p.width).divide(2))\r\n .ry(new SVGNumber(p.height).divide(2))\r\n }\r\n}\r\n\r\nextend(Ellipse, circled)\r\n\r\nregisterMethods('Container', {\r\n // Create an ellipse\r\n ellipse: wrapWithAttrCheck(function (width = 0, height = width) {\r\n return this.put(new Ellipse()).size(width, height).move(0, 0)\r\n })\r\n})\r\n\r\nregister(Ellipse, 'Ellipse')\r\n","import Dom from './Dom.js'\nimport { globals } from '../utils/window.js'\nimport { register, create } from '../utils/adopter.js'\n\nclass Fragment extends Dom {\n constructor (node = globals.document.createDocumentFragment()) {\n super(node)\n }\n\n // Import / Export raw xml\n xml (xmlOrFn, outerXML, ns) {\n if (typeof xmlOrFn === 'boolean') {\n ns = outerXML\n outerXML = xmlOrFn\n xmlOrFn = null\n }\n\n // because this is a fragment we have to put all elements into a wrapper first\n // before we can get the innerXML from it\n if (xmlOrFn == null || typeof xmlOrFn === 'function') {\n const wrapper = new Dom(create('wrapper', ns))\n wrapper.add(this.node.cloneNode(true))\n\n return wrapper.xml(false, ns)\n }\n\n // Act as setter if we got a string\n return super.xml(xmlOrFn, false, ns)\n }\n\n}\n\nregister(Fragment, 'Fragment')\n\nexport default Fragment\n","import SVGNumber from '../../types/SVGNumber.js'\r\n\r\nexport function from (x, y) {\r\n return (this._element || this).type === 'radialGradient'\r\n ? this.attr({ fx: new SVGNumber(x), fy: new SVGNumber(y) })\r\n : this.attr({ x1: new SVGNumber(x), y1: new SVGNumber(y) })\r\n}\r\n\r\nexport function to (x, y) {\r\n return (this._element || this).type === 'radialGradient'\r\n ? this.attr({ cx: new SVGNumber(x), cy: new SVGNumber(y) })\r\n : this.attr({ x2: new SVGNumber(x), y2: new SVGNumber(y) })\r\n}\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Box from '../types/Box.js'\r\nimport Container from './Container.js'\r\nimport baseFind from '../modules/core/selector.js'\r\nimport * as gradiented from '../modules/core/gradiented.js'\r\n\r\nexport default class Gradient extends Container {\r\n constructor (type, attrs) {\r\n super(\r\n nodeOrNew(type + 'Gradient', typeof type === 'string' ? null : type),\r\n attrs\r\n )\r\n }\r\n\r\n // custom attr to handle transform\r\n attr (a, b, c) {\r\n if (a === 'transform') a = 'gradientTransform'\r\n return super.attr(a, b, c)\r\n }\r\n\r\n bbox () {\r\n return new Box()\r\n }\r\n\r\n targets () {\r\n return baseFind('svg [fill*=\"' + this.id() + '\"]')\r\n }\r\n\r\n // Alias string conversion to fill\r\n toString () {\r\n return this.url()\r\n }\r\n\r\n // Update gradient\r\n update (block) {\r\n // remove all stops\r\n this.clear()\r\n\r\n // invoke passed block\r\n if (typeof block === 'function') {\r\n block.call(this, this)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Return the fill id\r\n url () {\r\n return 'url(\"#' + this.id() + '\")'\r\n }\r\n}\r\n\r\nextend(Gradient, gradiented)\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create gradient element in defs\r\n gradient (...args) {\r\n return this.defs().gradient(...args)\r\n }\r\n },\r\n // define gradient\r\n Defs: {\r\n gradient: wrapWithAttrCheck(function (type, block) {\r\n return this.put(new Gradient(type)).update(block)\r\n })\r\n }\r\n})\r\n\r\nregister(Gradient, 'Gradient')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Box from '../types/Box.js'\r\nimport Container from './Container.js'\r\nimport baseFind from '../modules/core/selector.js'\r\n\r\nexport default class Pattern extends Container {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('pattern', node), attrs)\r\n }\r\n\r\n // custom attr to handle transform\r\n attr (a, b, c) {\r\n if (a === 'transform') a = 'patternTransform'\r\n return super.attr(a, b, c)\r\n }\r\n\r\n bbox () {\r\n return new Box()\r\n }\r\n\r\n targets () {\r\n return baseFind('svg [fill*=\"' + this.id() + '\"]')\r\n }\r\n\r\n // Alias string conversion to fill\r\n toString () {\r\n return this.url()\r\n }\r\n\r\n // Update pattern by rebuilding\r\n update (block) {\r\n // remove content\r\n this.clear()\r\n\r\n // invoke passed block\r\n if (typeof block === 'function') {\r\n block.call(this, this)\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Return the fill id\r\n url () {\r\n return 'url(\"#' + this.id() + '\")'\r\n }\r\n\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create pattern element in defs\r\n pattern (...args) {\r\n return this.defs().pattern(...args)\r\n }\r\n },\r\n Defs: {\r\n pattern: wrapWithAttrCheck(function (width, height, block) {\r\n return this.put(new Pattern()).update(block).attr({\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height,\r\n patternUnits: 'userSpaceOnUse'\r\n })\r\n })\r\n }\r\n})\r\n\r\nregister(Pattern, 'Pattern')\r\n","import { isImage } from '../modules/core/regex.js'\r\nimport { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { off, on } from '../modules/core/event.js'\r\nimport { registerAttrHook } from '../modules/core/attr.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { xlink } from '../modules/core/namespaces.js'\r\nimport Pattern from './Pattern.js'\r\nimport Shape from './Shape.js'\r\nimport { globals } from '../utils/window.js'\r\n\r\nexport default class Image extends Shape {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('image', node), attrs)\r\n }\r\n\r\n // (re)load image\r\n load (url, callback) {\r\n if (!url) return this\r\n\r\n const img = new globals.window.Image()\r\n\r\n on(img, 'load', function (e) {\r\n const p = this.parent(Pattern)\r\n\r\n // ensure image size\r\n if (this.width() === 0 && this.height() === 0) {\r\n this.size(img.width, img.height)\r\n }\r\n\r\n if (p instanceof Pattern) {\r\n // ensure pattern size if not set\r\n if (p.width() === 0 && p.height() === 0) {\r\n p.size(this.width(), this.height())\r\n }\r\n }\r\n\r\n if (typeof callback === 'function') {\r\n callback.call(this, e)\r\n }\r\n }, this)\r\n\r\n on(img, 'load error', function () {\r\n // dont forget to unbind memory leaking events\r\n off(img)\r\n })\r\n\r\n return this.attr('href', (img.src = url), xlink)\r\n }\r\n}\r\n\r\nregisterAttrHook(function (attr, val, _this) {\r\n // convert image fill and stroke to patterns\r\n if (attr === 'fill' || attr === 'stroke') {\r\n if (isImage.test(val)) {\r\n val = _this.root().defs().image(val)\r\n }\r\n }\r\n\r\n if (val instanceof Image) {\r\n val = _this.root().defs().pattern(0, 0, (pattern) => {\r\n pattern.add(val)\r\n })\r\n }\r\n\r\n return val\r\n})\r\n\r\nregisterMethods({\r\n Container: {\r\n // create image element, load image and set its size\r\n image: wrapWithAttrCheck(function (source, callback) {\r\n return this.put(new Image()).size(0, 0).load(source, callback)\r\n })\r\n }\r\n})\r\n\r\nregister(Image, 'Image')\r\n","import { delimiter } from '../modules/core/regex.js'\r\nimport SVGArray from './SVGArray.js'\r\nimport Box from './Box.js'\r\nimport Matrix from './Matrix.js'\r\n\r\nexport default class PointArray extends SVGArray {\r\n // Get bounding box of points\r\n bbox () {\r\n let maxX = -Infinity\r\n let maxY = -Infinity\r\n let minX = Infinity\r\n let minY = Infinity\r\n this.forEach(function (el) {\r\n maxX = Math.max(el[0], maxX)\r\n maxY = Math.max(el[1], maxY)\r\n minX = Math.min(el[0], minX)\r\n minY = Math.min(el[1], minY)\r\n })\r\n return new Box(minX, minY, maxX - minX, maxY - minY)\r\n }\r\n\r\n // Move point string\r\n move (x, y) {\r\n const box = this.bbox()\r\n\r\n // get relative offset\r\n x -= box.x\r\n y -= box.y\r\n\r\n // move every point\r\n if (!isNaN(x) && !isNaN(y)) {\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n this[i] = [ this[i][0] + x, this[i][1] + y ]\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Parse point string and flat array\r\n parse (array = [ 0, 0 ]) {\r\n const points = []\r\n\r\n // if it is an array, we flatten it and therefore clone it to 1 depths\r\n if (array instanceof Array) {\r\n array = Array.prototype.concat.apply([], array)\r\n } else { // Else, it is considered as a string\r\n // parse points\r\n array = array.trim().split(delimiter).map(parseFloat)\r\n }\r\n\r\n // validate points - https://svgwg.org/svg2-draft/shapes.html#DataTypePoints\r\n // Odd number of coordinates is an error. In such cases, drop the last odd coordinate.\r\n if (array.length % 2 !== 0) array.pop()\r\n\r\n // wrap points in two-tuples\r\n for (let i = 0, len = array.length; i < len; i = i + 2) {\r\n points.push([ array[i], array[i + 1] ])\r\n }\r\n\r\n return points\r\n }\r\n\r\n // Resize poly string\r\n size (width, height) {\r\n let i\r\n const box = this.bbox()\r\n\r\n // recalculate position of all points according to new size\r\n for (i = this.length - 1; i >= 0; i--) {\r\n if (box.width) this[i][0] = ((this[i][0] - box.x) * width) / box.width + box.x\r\n if (box.height) this[i][1] = ((this[i][1] - box.y) * height) / box.height + box.y\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Convert array to line object\r\n toLine () {\r\n return {\r\n x1: this[0][0],\r\n y1: this[0][1],\r\n x2: this[1][0],\r\n y2: this[1][1]\r\n }\r\n }\r\n\r\n // Convert array to string\r\n toString () {\r\n const array = []\r\n // convert to a poly point string\r\n for (let i = 0, il = this.length; i < il; i++) {\r\n array.push(this[i].join(','))\r\n }\r\n\r\n return array.join(' ')\r\n }\r\n\r\n transform (m) {\r\n return this.clone().transformO(m)\r\n }\r\n\r\n // transform points with matrix (similar to Point.transform)\r\n transformO (m) {\r\n if (!Matrix.isMatrixLike(m)) {\r\n m = new Matrix(m)\r\n }\r\n\r\n for (let i = this.length; i--;) {\r\n // Perform the matrix multiplication\r\n const [ x, y ] = this[i]\r\n this[i][0] = m.a * x + m.c * y + m.e\r\n this[i][1] = m.b * x + m.d * y + m.f\r\n }\r\n\r\n return this\r\n }\r\n\r\n}\r\n","import PointArray from '../../types/PointArray.js'\r\n\r\nexport const MorphArray = PointArray\r\n\r\n// Move by left top corner over x-axis\r\nexport function x (x) {\r\n return x == null ? this.bbox().x : this.move(x, this.bbox().y)\r\n}\r\n\r\n// Move by left top corner over y-axis\r\nexport function y (y) {\r\n return y == null ? this.bbox().y : this.move(this.bbox().x, y)\r\n}\r\n\r\n// Set width of element\r\nexport function width (width) {\r\n const b = this.bbox()\r\n return width == null ? b.width : this.size(width, b.height)\r\n}\r\n\r\n// Set height of element\r\nexport function height (height) {\r\n const b = this.bbox()\r\n return height == null ? b.height : this.size(b.width, height)\r\n}\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { proportionalSize } from '../utils/utils.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport PointArray from '../types/PointArray.js'\r\nimport Shape from './Shape.js'\r\nimport * as pointed from '../modules/core/pointed.js'\r\n\r\nexport default class Line extends Shape {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('line', node), attrs)\r\n }\r\n\r\n // Get array\r\n array () {\r\n return new PointArray([\r\n [ this.attr('x1'), this.attr('y1') ],\r\n [ this.attr('x2'), this.attr('y2') ]\r\n ])\r\n }\r\n\r\n // Move by left top corner\r\n move (x, y) {\r\n return this.attr(this.array().move(x, y).toLine())\r\n }\r\n\r\n // Overwrite native plot() method\r\n plot (x1, y1, x2, y2) {\r\n if (x1 == null) {\r\n return this.array()\r\n } else if (typeof y1 !== 'undefined') {\r\n x1 = { x1, y1, x2, y2 }\r\n } else {\r\n x1 = new PointArray(x1).toLine()\r\n }\r\n\r\n return this.attr(x1)\r\n }\r\n\r\n // Set element size to given width and height\r\n size (width, height) {\r\n const p = proportionalSize(this, width, height)\r\n return this.attr(this.array().size(p.width, p.height).toLine())\r\n }\r\n}\r\n\r\nextend(Line, pointed)\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a line element\r\n line: wrapWithAttrCheck(function (...args) {\r\n // make sure plot is called as a setter\r\n // x1 is not necessarily a number, it can also be an array, a string and a PointArray\r\n return Line.prototype.plot.apply(\r\n this.put(new Line())\r\n , args[0] != null ? args : [ 0, 0, 0, 0 ]\r\n )\r\n })\r\n }\r\n})\r\n\r\nregister(Line, 'Line')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\n\r\nexport default class Marker extends Container {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('marker', node), attrs)\r\n }\r\n\r\n // Set height of element\n height (height) {\r\n return this.attr('markerHeight', height)\r\n }\n\n orient (orient) {\r\n return this.attr('orient', orient)\r\n }\n\n // Set marker refX and refY\n ref (x, y) {\r\n return this.attr('refX', x).attr('refY', y)\r\n }\n\n // Return the fill id\n toString () {\r\n return 'url(#' + this.id() + ')'\r\n }\n\n // Update marker\n update (block) {\r\n // remove all content\r\n this.clear()\r\n\r\n // invoke passed block\r\n if (typeof block === 'function') {\r\n block.call(this, this)\r\n }\r\n\r\n return this\r\n }\n\n // Set width of element\r\n width (width) {\r\n return this.attr('markerWidth', width)\r\n }\r\n\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n marker (...args) {\r\n // Create marker element in defs\r\n return this.defs().marker(...args)\r\n }\r\n },\r\n Defs: {\r\n // Create marker\r\n marker: wrapWithAttrCheck(function (width, height, block) {\r\n // Set default viewbox to match the width and height, set ref to cx and cy and set orient to auto\r\n return this.put(new Marker())\r\n .size(width, height)\r\n .ref(width / 2, height / 2)\r\n .viewbox(0, 0, width, height)\r\n .attr('orient', 'auto')\r\n .update(block)\r\n })\r\n },\r\n marker: {\r\n // Create and attach markers\r\n marker (marker, width, height, block) {\r\n let attr = [ 'marker' ]\r\n\r\n // Build attribute name\r\n if (marker !== 'all') attr.push(marker)\r\n attr = attr.join('-')\r\n\r\n // Set marker attribute\r\n marker = arguments[1] instanceof Marker\r\n ? arguments[1]\r\n : this.defs().marker(width, height, block)\r\n\r\n return this.attr(attr, marker)\r\n }\r\n }\r\n})\r\n\r\nregister(Marker, 'Marker')\r\n","import { timeline } from '../modules/core/defaults.js'\r\nimport { extend } from '../utils/adopter.js'\r\n\r\n/***\r\nBase Class\r\n==========\r\nThe base stepper class that will be\r\n***/\r\n\r\nfunction makeSetterGetter (k, f) {\r\n return function (v) {\r\n if (v == null) return this[k]\r\n this[k] = v\r\n if (f) f.call(this)\r\n return this\r\n }\r\n}\r\n\r\nexport const easing = {\r\n '-': function (pos) {\r\n return pos\r\n },\r\n '<>': function (pos) {\r\n return -Math.cos(pos * Math.PI) / 2 + 0.5\r\n },\r\n '>': function (pos) {\r\n return Math.sin(pos * Math.PI / 2)\r\n },\r\n '<': function (pos) {\r\n return -Math.cos(pos * Math.PI / 2) + 1\r\n },\r\n bezier: function (x1, y1, x2, y2) {\r\n // see https://www.w3.org/TR/css-easing-1/#cubic-bezier-algo\r\n return function (t) {\r\n if (t < 0) {\r\n if (x1 > 0) {\r\n return y1 / x1 * t\r\n } else if (x2 > 0) {\r\n return y2 / x2 * t\r\n } else {\r\n return 0\r\n }\r\n } else if (t > 1) {\r\n if (x2 < 1) {\r\n return (1 - y2) / (1 - x2) * t + (y2 - x2) / (1 - x2)\r\n } else if (x1 < 1) {\r\n return (1 - y1) / (1 - x1) * t + (y1 - x1) / (1 - x1)\r\n } else {\r\n return 1\r\n }\r\n } else {\r\n return 3 * t * (1 - t) ** 2 * y1 + 3 * t ** 2 * (1 - t) * y2 + t ** 3\r\n }\r\n }\r\n },\r\n // see https://www.w3.org/TR/css-easing-1/#step-timing-function-algo\r\n steps: function (steps, stepPosition = 'end') {\r\n // deal with \"jump-\" prefix\r\n stepPosition = stepPosition.split('-').reverse()[0]\r\n\r\n let jumps = steps\r\n if (stepPosition === 'none') {\r\n --jumps\r\n } else if (stepPosition === 'both') {\r\n ++jumps\r\n }\r\n\r\n // The beforeFlag is essentially useless\r\n return (t, beforeFlag = false) => {\r\n // Step is called currentStep in referenced url\r\n let step = Math.floor(t * steps)\r\n const jumping = (t * step) % 1 === 0\r\n\r\n if (stepPosition === 'start' || stepPosition === 'both') {\r\n ++step\r\n }\r\n\r\n if (beforeFlag && jumping) {\r\n --step\r\n }\r\n\r\n if (t >= 0 && step < 0) {\r\n step = 0\r\n }\r\n\r\n if (t <= 1 && step > jumps) {\r\n step = jumps\r\n }\r\n\r\n return step / jumps\r\n }\r\n }\r\n}\r\n\r\nexport class Stepper {\r\n done () {\r\n return false\r\n }\r\n}\r\n\r\n/***\r\nEasing Functions\r\n================\r\n***/\r\n\r\nexport class Ease extends Stepper {\r\n constructor (fn = timeline.ease) {\r\n super()\r\n this.ease = easing[fn] || fn\r\n }\r\n\r\n step (from, to, pos) {\r\n if (typeof from !== 'number') {\r\n return pos < 1 ? from : to\r\n }\r\n return from + (to - from) * this.ease(pos)\r\n }\r\n}\r\n\r\n/***\r\nController Types\r\n================\r\n***/\r\n\r\nexport class Controller extends Stepper {\r\n constructor (fn) {\r\n super()\r\n this.stepper = fn\r\n }\r\n\r\n done (c) {\r\n return c.done\r\n }\n\n step (current, target, dt, c) {\r\n return this.stepper(current, target, dt, c)\r\n }\r\n\r\n}\r\n\r\nfunction recalculate () {\r\n // Apply the default parameters\r\n const duration = (this._duration || 500) / 1000\r\n const overshoot = this._overshoot || 0\r\n\r\n // Calculate the PID natural response\r\n const eps = 1e-10\r\n const pi = Math.PI\r\n const os = Math.log(overshoot / 100 + eps)\r\n const zeta = -os / Math.sqrt(pi * pi + os * os)\r\n const wn = 3.9 / (zeta * duration)\r\n\r\n // Calculate the Spring values\r\n this.d = 2 * zeta * wn\r\n this.k = wn * wn\r\n}\r\n\r\nexport class Spring extends Controller {\r\n constructor (duration = 500, overshoot = 0) {\r\n super()\r\n this.duration(duration)\r\n .overshoot(overshoot)\r\n }\r\n\r\n step (current, target, dt, c) {\r\n if (typeof current === 'string') return current\r\n c.done = dt === Infinity\r\n if (dt === Infinity) return target\r\n if (dt === 0) return current\r\n\r\n if (dt > 100) dt = 16\r\n\r\n dt /= 1000\r\n\r\n // Get the previous velocity\r\n const velocity = c.velocity || 0\r\n\r\n // Apply the control to get the new position and store it\r\n const acceleration = -this.d * velocity - this.k * (current - target)\r\n const newPosition = current\r\n + velocity * dt\r\n + acceleration * dt * dt / 2\r\n\r\n // Store the velocity\r\n c.velocity = velocity + acceleration * dt\r\n\r\n // Figure out if we have converged, and if so, pass the value\r\n c.done = Math.abs(target - newPosition) + Math.abs(velocity) < 0.002\r\n return c.done ? target : newPosition\r\n }\r\n}\r\n\r\nextend(Spring, {\r\n duration: makeSetterGetter('_duration', recalculate),\r\n overshoot: makeSetterGetter('_overshoot', recalculate)\r\n})\r\n\r\nexport class PID extends Controller {\r\n constructor (p = 0.1, i = 0.01, d = 0, windup = 1000) {\r\n super()\r\n this.p(p).i(i).d(d).windup(windup)\r\n }\r\n\r\n step (current, target, dt, c) {\r\n if (typeof current === 'string') return current\r\n c.done = dt === Infinity\r\n\r\n if (dt === Infinity) return target\r\n if (dt === 0) return current\r\n\r\n const p = target - current\r\n let i = (c.integral || 0) + p * dt\r\n const d = (p - (c.error || 0)) / dt\r\n const windup = this._windup\r\n\r\n // antiwindup\r\n if (windup !== false) {\r\n i = Math.max(-windup, Math.min(i, windup))\r\n }\r\n\r\n c.error = p\r\n c.integral = i\r\n\r\n c.done = Math.abs(p) < 0.001\r\n\r\n return c.done ? target : current + (this.P * p + this.I * i + this.D * d)\r\n }\r\n}\r\n\r\nextend(PID, {\r\n windup: makeSetterGetter('_windup'),\r\n p: makeSetterGetter('P'),\r\n i: makeSetterGetter('I'),\r\n d: makeSetterGetter('D')\r\n})\r\n","import { isPathLetter } from '../modules/core/regex.js'\r\nimport Point from '../types/Point.js'\r\n\r\nconst segmentParameters = { M: 2, L: 2, H: 1, V: 1, C: 6, S: 4, Q: 4, T: 2, A: 7, Z: 0 }\r\n\r\nconst pathHandlers = {\r\n M: function (c, p, p0) {\r\n p.x = p0.x = c[0]\r\n p.y = p0.y = c[1]\r\n\r\n return [ 'M', p.x, p.y ]\r\n },\r\n L: function (c, p) {\r\n p.x = c[0]\r\n p.y = c[1]\r\n return [ 'L', c[0], c[1] ]\r\n },\r\n H: function (c, p) {\r\n p.x = c[0]\r\n return [ 'H', c[0] ]\r\n },\r\n V: function (c, p) {\r\n p.y = c[0]\r\n return [ 'V', c[0] ]\r\n },\r\n C: function (c, p) {\r\n p.x = c[4]\r\n p.y = c[5]\r\n return [ 'C', c[0], c[1], c[2], c[3], c[4], c[5] ]\r\n },\r\n S: function (c, p) {\r\n p.x = c[2]\r\n p.y = c[3]\r\n return [ 'S', c[0], c[1], c[2], c[3] ]\r\n },\r\n Q: function (c, p) {\r\n p.x = c[2]\r\n p.y = c[3]\r\n return [ 'Q', c[0], c[1], c[2], c[3] ]\r\n },\r\n T: function (c, p) {\r\n p.x = c[0]\r\n p.y = c[1]\r\n return [ 'T', c[0], c[1] ]\r\n },\r\n Z: function (c, p, p0) {\r\n p.x = p0.x\r\n p.y = p0.y\r\n return [ 'Z' ]\r\n },\r\n A: function (c, p) {\r\n p.x = c[5]\r\n p.y = c[6]\r\n return [ 'A', c[0], c[1], c[2], c[3], c[4], c[5], c[6] ]\r\n }\r\n}\r\n\r\nconst mlhvqtcsaz = 'mlhvqtcsaz'.split('')\r\n\r\nfor (let i = 0, il = mlhvqtcsaz.length; i < il; ++i) {\r\n pathHandlers[mlhvqtcsaz[i]] = (function (i) {\r\n return function (c, p, p0) {\r\n if (i === 'H') c[0] = c[0] + p.x\r\n else if (i === 'V') c[0] = c[0] + p.y\r\n else if (i === 'A') {\r\n c[5] = c[5] + p.x\r\n c[6] = c[6] + p.y\r\n } else {\r\n for (let j = 0, jl = c.length; j < jl; ++j) {\r\n c[j] = c[j] + (j % 2 ? p.y : p.x)\r\n }\r\n }\r\n\r\n return pathHandlers[i](c, p, p0)\r\n }\r\n })(mlhvqtcsaz[i].toUpperCase())\r\n}\r\n\r\nfunction makeAbsolut (parser) {\r\n const command = parser.segment[0]\r\n return pathHandlers[command](parser.segment.slice(1), parser.p, parser.p0)\r\n}\r\n\r\nfunction segmentComplete (parser) {\r\n return parser.segment.length && parser.segment.length - 1 === segmentParameters[parser.segment[0].toUpperCase()]\r\n}\r\n\r\nfunction startNewSegment (parser, token) {\r\n parser.inNumber && finalizeNumber(parser, false)\r\n const pathLetter = isPathLetter.test(token)\r\n\r\n if (pathLetter) {\r\n parser.segment = [ token ]\r\n } else {\r\n const lastCommand = parser.lastCommand\r\n const small = lastCommand.toLowerCase()\r\n const isSmall = lastCommand === small\r\n parser.segment = [ small === 'm' ? (isSmall ? 'l' : 'L') : lastCommand ]\r\n }\r\n\r\n parser.inSegment = true\r\n parser.lastCommand = parser.segment[0]\r\n\r\n return pathLetter\r\n}\r\n\r\nfunction finalizeNumber (parser, inNumber) {\r\n if (!parser.inNumber) throw new Error('Parser Error')\r\n parser.number && parser.segment.push(parseFloat(parser.number))\r\n parser.inNumber = inNumber\r\n parser.number = ''\r\n parser.pointSeen = false\r\n parser.hasExponent = false\r\n\r\n if (segmentComplete(parser)) {\r\n finalizeSegment(parser)\r\n }\r\n}\r\n\r\nfunction finalizeSegment (parser) {\r\n parser.inSegment = false\r\n if (parser.absolute) {\r\n parser.segment = makeAbsolut(parser)\r\n }\r\n parser.segments.push(parser.segment)\r\n}\r\n\r\nfunction isArcFlag (parser) {\r\n if (!parser.segment.length) return false\r\n const isArc = parser.segment[0].toUpperCase() === 'A'\r\n const length = parser.segment.length\r\n\r\n return isArc && (length === 4 || length === 5)\r\n}\r\n\r\nfunction isExponential (parser) {\r\n return parser.lastToken.toUpperCase() === 'E'\r\n}\r\n\r\nexport function pathParser (d, toAbsolute = true) {\r\n\r\n let index = 0\r\n let token = ''\r\n const parser = {\r\n segment: [],\r\n inNumber: false,\r\n number: '',\r\n lastToken: '',\r\n inSegment: false,\r\n segments: [],\r\n pointSeen: false,\r\n hasExponent: false,\r\n absolute: toAbsolute,\r\n p0: new Point(),\r\n p: new Point()\r\n }\r\n\r\n while ((parser.lastToken = token, token = d.charAt(index++))) {\r\n if (!parser.inSegment) {\r\n if (startNewSegment(parser, token)) {\r\n continue\r\n }\r\n }\r\n\r\n if (token === '.') {\r\n if (parser.pointSeen || parser.hasExponent) {\r\n finalizeNumber(parser, false)\r\n --index\r\n continue\r\n }\r\n parser.inNumber = true\r\n parser.pointSeen = true\r\n parser.number += token\r\n continue\r\n }\r\n\r\n if (!isNaN(parseInt(token))) {\r\n\r\n if (parser.number === '0' || isArcFlag(parser)) {\r\n parser.inNumber = true\r\n parser.number = token\r\n finalizeNumber(parser, true)\r\n continue\r\n }\r\n\r\n parser.inNumber = true\r\n parser.number += token\r\n continue\r\n }\r\n\r\n if (token === ' ' || token === ',') {\r\n if (parser.inNumber) {\r\n finalizeNumber(parser, false)\r\n }\r\n continue\r\n }\r\n\r\n if (token === '-') {\r\n if (parser.inNumber && !isExponential(parser)) {\r\n finalizeNumber(parser, false)\r\n --index\r\n continue\r\n }\r\n parser.number += token\r\n parser.inNumber = true\r\n continue\r\n }\r\n\r\n if (token.toUpperCase() === 'E') {\r\n parser.number += token\r\n parser.hasExponent = true\r\n continue\r\n }\r\n\r\n if (isPathLetter.test(token)) {\r\n if (parser.inNumber) {\r\n finalizeNumber(parser, false)\r\n } else if (!segmentComplete(parser)) {\r\n throw new Error('parser Error')\r\n } else {\r\n finalizeSegment(parser)\r\n }\r\n --index\r\n }\r\n }\r\n\r\n if (parser.inNumber) {\r\n finalizeNumber(parser, false)\r\n }\r\n\r\n if (parser.inSegment && segmentComplete(parser)) {\r\n finalizeSegment(parser)\r\n }\r\n\r\n return parser.segments\r\n\r\n}\r\n","import SVGArray from './SVGArray.js'\r\nimport parser from '../modules/core/parser.js'\r\nimport Box from './Box.js'\r\nimport { pathParser } from '../utils/pathParser.js'\r\n\r\nfunction arrayToString (a) {\r\n let s = ''\r\n for (let i = 0, il = a.length; i < il; i++) {\r\n s += a[i][0]\r\n\r\n if (a[i][1] != null) {\r\n s += a[i][1]\r\n\r\n if (a[i][2] != null) {\r\n s += ' '\r\n s += a[i][2]\r\n\r\n if (a[i][3] != null) {\r\n s += ' '\r\n s += a[i][3]\r\n s += ' '\r\n s += a[i][4]\r\n\r\n if (a[i][5] != null) {\r\n s += ' '\r\n s += a[i][5]\r\n s += ' '\r\n s += a[i][6]\r\n\r\n if (a[i][7] != null) {\r\n s += ' '\r\n s += a[i][7]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return s + ' '\r\n}\r\n\r\nexport default class PathArray extends SVGArray {\r\n // Get bounding box of path\r\n bbox () {\r\n parser().path.setAttribute('d', this.toString())\r\n return new Box(parser.nodes.path.getBBox())\r\n }\r\n\r\n // Move path string\r\n move (x, y) {\r\n // get bounding box of current situation\r\n const box = this.bbox()\r\n\r\n // get relative offset\r\n x -= box.x\r\n y -= box.y\r\n\r\n if (!isNaN(x) && !isNaN(y)) {\r\n // move every point\r\n for (let l, i = this.length - 1; i >= 0; i--) {\r\n l = this[i][0]\r\n\r\n if (l === 'M' || l === 'L' || l === 'T') {\r\n this[i][1] += x\r\n this[i][2] += y\r\n } else if (l === 'H') {\r\n this[i][1] += x\r\n } else if (l === 'V') {\r\n this[i][1] += y\r\n } else if (l === 'C' || l === 'S' || l === 'Q') {\r\n this[i][1] += x\r\n this[i][2] += y\r\n this[i][3] += x\r\n this[i][4] += y\r\n\r\n if (l === 'C') {\r\n this[i][5] += x\r\n this[i][6] += y\r\n }\r\n } else if (l === 'A') {\r\n this[i][6] += x\r\n this[i][7] += y\r\n }\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Absolutize and parse path to array\r\n parse (d = 'M0 0') {\r\n if (Array.isArray(d)) {\r\n d = Array.prototype.concat.apply([], d).toString()\r\n }\r\n\r\n return pathParser(d)\r\n }\r\n\r\n // Resize path string\r\n size (width, height) {\r\n // get bounding box of current situation\r\n const box = this.bbox()\r\n let i, l\r\n\r\n // If the box width or height is 0 then we ignore\r\n // transformations on the respective axis\r\n box.width = box.width === 0 ? 1 : box.width\r\n box.height = box.height === 0 ? 1 : box.height\r\n\r\n // recalculate position of all points according to new size\r\n for (i = this.length - 1; i >= 0; i--) {\r\n l = this[i][0]\r\n\r\n if (l === 'M' || l === 'L' || l === 'T') {\r\n this[i][1] = ((this[i][1] - box.x) * width) / box.width + box.x\r\n this[i][2] = ((this[i][2] - box.y) * height) / box.height + box.y\r\n } else if (l === 'H') {\r\n this[i][1] = ((this[i][1] - box.x) * width) / box.width + box.x\r\n } else if (l === 'V') {\r\n this[i][1] = ((this[i][1] - box.y) * height) / box.height + box.y\r\n } else if (l === 'C' || l === 'S' || l === 'Q') {\r\n this[i][1] = ((this[i][1] - box.x) * width) / box.width + box.x\r\n this[i][2] = ((this[i][2] - box.y) * height) / box.height + box.y\r\n this[i][3] = ((this[i][3] - box.x) * width) / box.width + box.x\r\n this[i][4] = ((this[i][4] - box.y) * height) / box.height + box.y\r\n\r\n if (l === 'C') {\r\n this[i][5] = ((this[i][5] - box.x) * width) / box.width + box.x\r\n this[i][6] = ((this[i][6] - box.y) * height) / box.height + box.y\r\n }\r\n } else if (l === 'A') {\r\n // resize radii\r\n this[i][1] = (this[i][1] * width) / box.width\r\n this[i][2] = (this[i][2] * height) / box.height\r\n\r\n // move position values\r\n this[i][6] = ((this[i][6] - box.x) * width) / box.width + box.x\r\n this[i][7] = ((this[i][7] - box.y) * height) / box.height + box.y\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n // Convert array to string\r\n toString () {\r\n return arrayToString(this)\r\n }\r\n\r\n}\r\n","import { Ease } from './Controller.js'\r\nimport {\r\n delimiter,\r\n numberAndUnit,\r\n isPathLetter\r\n} from '../modules/core/regex.js'\r\nimport { extend } from '../utils/adopter.js'\r\nimport Color from '../types/Color.js'\r\nimport PathArray from '../types/PathArray.js'\r\nimport SVGArray from '../types/SVGArray.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\n\r\nconst getClassForType = (value) => {\r\n const type = typeof value\r\n\r\n if (type === 'number') {\r\n return SVGNumber\r\n } else if (type === 'string') {\r\n if (Color.isColor(value)) {\r\n return Color\r\n } else if (delimiter.test(value)) {\r\n return isPathLetter.test(value)\r\n ? PathArray\r\n : SVGArray\r\n } else if (numberAndUnit.test(value)) {\r\n return SVGNumber\r\n } else {\r\n return NonMorphable\r\n }\r\n } else if (morphableTypes.indexOf(value.constructor) > -1) {\r\n return value.constructor\r\n } else if (Array.isArray(value)) {\r\n return SVGArray\r\n } else if (type === 'object') {\r\n return ObjectBag\r\n } else {\r\n return NonMorphable\r\n }\r\n}\r\n\r\nexport default class Morphable {\r\n constructor (stepper) {\r\n this._stepper = stepper || new Ease('-')\r\n\r\n this._from = null\r\n this._to = null\r\n this._type = null\r\n this._context = null\r\n this._morphObj = null\r\n }\r\n\r\n at (pos) {\r\n const _this = this\r\n\r\n return this._morphObj.fromArray(\r\n this._from.map(function (i, index) {\r\n return _this._stepper.step(i, _this._to[index], pos, _this._context[index], _this._context)\r\n })\r\n )\r\n }\r\n\r\n done () {\r\n const complete = this._context\r\n .map(this._stepper.done)\r\n .reduce(function (last, curr) {\r\n return last && curr\r\n }, true)\r\n return complete\r\n }\r\n\r\n from (val) {\r\n if (val == null) {\r\n return this._from\r\n }\r\n\r\n this._from = this._set(val)\r\n return this\r\n }\r\n\r\n stepper (stepper) {\r\n if (stepper == null) return this._stepper\r\n this._stepper = stepper\r\n return this\r\n }\r\n\r\n to (val) {\r\n if (val == null) {\r\n return this._to\r\n }\r\n\r\n this._to = this._set(val)\r\n return this\r\n }\r\n\r\n type (type) {\r\n // getter\r\n if (type == null) {\r\n return this._type\r\n }\r\n\r\n // setter\r\n this._type = type\r\n return this\r\n }\r\n\r\n _set (value) {\r\n if (!this._type) {\r\n this.type(getClassForType(value))\r\n }\r\n\r\n let result = (new this._type(value))\r\n if (this._type === Color) {\r\n result = this._to\n ? result[this._to[4]]()\r\n : this._from\n ? result[this._from[4]]()\r\n : result\r\n }\r\n\r\n if (this._type === ObjectBag) {\r\n result = this._to\n ? result.align(this._to)\r\n : this._from\n ? result.align(this._from)\r\n : result\r\n }\r\n\r\n result = result.toArray()\r\n\r\n this._morphObj = this._morphObj || new this._type()\r\n this._context = this._context\r\n || Array.apply(null, Array(result.length))\r\n .map(Object)\r\n .map(function (o) {\r\n o.done = true\r\n return o\r\n })\r\n return result\r\n }\r\n\r\n}\r\n\r\nexport class NonMorphable {\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n init (val) {\r\n val = Array.isArray(val) ? val[0] : val\r\n this.value = val\r\n return this\r\n }\r\n\r\n toArray () {\r\n return [ this.value ]\r\n }\r\n\r\n valueOf () {\r\n return this.value\r\n }\r\n\r\n}\r\n\r\nexport class TransformBag {\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n init (obj) {\r\n if (Array.isArray(obj)) {\r\n obj = {\r\n scaleX: obj[0],\r\n scaleY: obj[1],\r\n shear: obj[2],\r\n rotate: obj[3],\r\n translateX: obj[4],\r\n translateY: obj[5],\r\n originX: obj[6],\r\n originY: obj[7]\r\n }\r\n }\r\n\r\n Object.assign(this, TransformBag.defaults, obj)\r\n return this\r\n }\r\n\r\n toArray () {\r\n const v = this\r\n\r\n return [\r\n v.scaleX,\r\n v.scaleY,\r\n v.shear,\r\n v.rotate,\r\n v.translateX,\r\n v.translateY,\r\n v.originX,\r\n v.originY\r\n ]\r\n }\r\n}\r\n\r\nTransformBag.defaults = {\r\n scaleX: 1,\r\n scaleY: 1,\r\n shear: 0,\r\n rotate: 0,\r\n translateX: 0,\r\n translateY: 0,\r\n originX: 0,\r\n originY: 0\r\n}\r\n\r\nconst sortByKey = (a, b) => {\r\n return (a[0] < b[0] ? -1 : (a[0] > b[0] ? 1 : 0))\r\n}\r\n\r\nexport class ObjectBag {\r\n constructor (...args) {\r\n this.init(...args)\r\n }\r\n\r\n align (other) {\r\n for (let i = 0, il = this.values.length; i < il; ++i) {\r\n if (this.values[i] === Color) {\r\n const space = other[i + 6]\r\n const color = new Color(this.values.splice(i + 2, 5))[space]().toArray()\r\n this.values.splice(i + 2, 0, ...color)\r\n }\r\n }\r\n return this\r\n }\r\n\r\n init (objOrArr) {\r\n this.values = []\r\n\r\n if (Array.isArray(objOrArr)) {\r\n this.values = objOrArr.slice()\r\n return\r\n }\r\n\r\n objOrArr = objOrArr || {}\r\n const entries = []\r\n\r\n for (const i in objOrArr) {\r\n const Type = getClassForType(objOrArr[i])\r\n const val = new Type(objOrArr[i]).toArray()\r\n entries.push([ i, Type, val.length, ...val ])\r\n }\r\n\r\n entries.sort(sortByKey)\r\n\r\n this.values = entries.reduce((last, curr) => last.concat(curr), [])\r\n return this\r\n }\r\n\r\n toArray () {\r\n return this.values\r\n }\r\n\r\n valueOf () {\r\n const obj = {}\r\n const arr = this.values\r\n\r\n // for (var i = 0, len = arr.length; i < len; i += 2) {\r\n while (arr.length) {\r\n const key = arr.shift()\r\n const Type = arr.shift()\r\n const num = arr.shift()\r\n const values = arr.splice(0, num)\r\n obj[key] = new Type(values).valueOf()\r\n }\r\n\r\n return obj\r\n }\r\n\r\n}\r\n\r\nconst morphableTypes = [\r\n NonMorphable,\r\n TransformBag,\r\n ObjectBag\r\n]\r\n\r\nexport function registerMorphableType (type = []) {\r\n morphableTypes.push(...[].concat(type))\r\n}\r\n\r\nexport function makeMorphable () {\r\n extend(morphableTypes, {\r\n to (val) {\r\n return new Morphable()\r\n .type(this.constructor)\r\n .from(this.valueOf())\r\n .to(val)\r\n },\r\n fromArray (arr) {\r\n this.init(arr)\r\n return this\r\n }\r\n })\r\n}\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { proportionalSize } from '../utils/utils.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport PathArray from '../types/PathArray.js'\r\nimport Shape from './Shape.js'\r\n\r\nexport default class Path extends Shape {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('path', node), attrs)\r\n }\r\n\r\n // Get array\r\n array () {\r\n return this._array || (this._array = new PathArray(this.attr('d')))\r\n }\r\n\r\n // Clear array cache\r\n clear () {\r\n delete this._array\r\n return this\r\n }\r\n\r\n // Set height of element\r\n height (height) {\r\n return height == null ? this.bbox().height : this.size(this.bbox().width, height)\r\n }\r\n\r\n // Move by left top corner\r\n move (x, y) {\r\n return this.attr('d', this.array().move(x, y))\r\n }\r\n\r\n // Plot new path\r\n plot (d) {\r\n return (d == null)\n ? this.array()\r\n : this.clear().attr('d', typeof d === 'string' ? d : (this._array = new PathArray(d)))\r\n }\r\n\r\n // Set element size to given width and height\r\n size (width, height) {\r\n const p = proportionalSize(this, width, height)\r\n return this.attr('d', this.array().size(p.width, p.height))\r\n }\r\n\r\n // Set width of element\r\n width (width) {\r\n return width == null ? this.bbox().width : this.size(width, this.bbox().height)\r\n }\r\n\r\n // Move by left top corner over x-axis\r\n x (x) {\r\n return x == null ? this.bbox().x : this.move(x, this.bbox().y)\r\n }\r\n\r\n // Move by left top corner over y-axis\r\n y (y) {\r\n return y == null ? this.bbox().y : this.move(this.bbox().x, y)\r\n }\r\n\r\n}\r\n\r\n// Define morphable array\r\nPath.prototype.MorphArray = PathArray\r\n\r\n// Add parent method\r\nregisterMethods({\r\n Container: {\r\n // Create a wrapped path element\r\n path: wrapWithAttrCheck(function (d) {\r\n // make sure plot is called as a setter\r\n return this.put(new Path()).plot(d || new PathArray())\r\n })\r\n }\r\n})\r\n\r\nregister(Path, 'Path')\r\n","import { proportionalSize } from '../../utils/utils.js'\r\nimport PointArray from '../../types/PointArray.js'\r\n\r\n// Get array\r\nexport function array () {\r\n return this._array || (this._array = new PointArray(this.attr('points')))\r\n}\r\n\r\n// Clear array cache\r\nexport function clear () {\r\n delete this._array\r\n return this\r\n}\r\n\r\n// Move by left top corner\r\nexport function move (x, y) {\r\n return this.attr('points', this.array().move(x, y))\r\n}\r\n\r\n// Plot new path\r\nexport function plot (p) {\r\n return (p == null)\n ? this.array()\r\n : this.clear().attr('points', typeof p === 'string'\n ? p\r\n : (this._array = new PointArray(p)))\r\n}\r\n\r\n// Set element size to given width and height\r\nexport function size (width, height) {\r\n const p = proportionalSize(this, width, height)\r\n return this.attr('points', this.array().size(p.width, p.height))\r\n}\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport PointArray from '../types/PointArray.js'\r\nimport Shape from './Shape.js'\r\nimport * as pointed from '../modules/core/pointed.js'\r\nimport * as poly from '../modules/core/poly.js'\r\n\r\nexport default class Polygon extends Shape {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('polygon', node), attrs)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a wrapped polygon element\r\n polygon: wrapWithAttrCheck(function (p) {\r\n // make sure plot is called as a setter\r\n return this.put(new Polygon()).plot(p || new PointArray())\r\n })\r\n }\r\n})\r\n\r\nextend(Polygon, pointed)\r\nextend(Polygon, poly)\r\nregister(Polygon, 'Polygon')\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport PointArray from '../types/PointArray.js'\r\nimport Shape from './Shape.js'\r\nimport * as pointed from '../modules/core/pointed.js'\r\nimport * as poly from '../modules/core/poly.js'\r\n\r\nexport default class Polyline extends Shape {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('polyline', node), attrs)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a wrapped polygon element\r\n polyline: wrapWithAttrCheck(function (p) {\r\n // make sure plot is called as a setter\r\n return this.put(new Polyline()).plot(p || new PointArray())\r\n })\r\n }\r\n})\r\n\r\nextend(Polyline, pointed)\r\nextend(Polyline, poly)\r\nregister(Polyline, 'Polyline')\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { rx, ry } from '../modules/core/circled.js'\r\nimport Shape from './Shape.js'\r\n\r\nexport default class Rect extends Shape {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('rect', node), attrs)\r\n }\r\n}\r\n\r\nextend(Rect, { rx, ry })\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a rect element\r\n rect: wrapWithAttrCheck(function (width, height) {\r\n return this.put(new Rect()).size(width, height)\r\n })\r\n }\r\n})\r\n\r\nregister(Rect, 'Rect')\r\n","export default class Queue {\r\n constructor () {\r\n this._first = null\r\n this._last = null\r\n }\r\n\r\n // Shows us the first item in the list\n first () {\r\n return this._first && this._first.value\r\n }\n\n // Shows us the last item in the list\n last () {\r\n return this._last && this._last.value\r\n }\n\n push (value) {\r\n // An item stores an id and the provided value\r\n const item = typeof value.next !== 'undefined' ? value : { value: value, next: null, prev: null }\r\n\r\n // Deal with the queue being empty or populated\r\n if (this._last) {\r\n item.prev = this._last\r\n this._last.next = item\r\n this._last = item\r\n } else {\r\n this._last = item\r\n this._first = item\r\n }\r\n\r\n // Return the current item\r\n return item\r\n }\r\n\n // Removes the item that was returned from the push\n remove (item) {\r\n // Relink the previous item\r\n if (item.prev) item.prev.next = item.next\r\n if (item.next) item.next.prev = item.prev\r\n if (item === this._last) this._last = item.prev\r\n if (item === this._first) this._first = item.next\r\n\r\n // Invalidate item\r\n item.prev = null\r\n item.next = null\r\n }\n\n shift () {\r\n // Check if we have a value\r\n const remove = this._first\r\n if (!remove) return null\r\n\r\n // If we do, remove it and relink things\r\n this._first = remove.next\r\n if (this._first) this._first.prev = null\r\n this._last = this._first ? this._last : null\r\n return remove.value\r\n }\r\n\r\n}\r\n","import { globals } from '../utils/window.js'\r\nimport Queue from './Queue.js'\r\n\r\nconst Animator = {\r\n nextDraw: null,\r\n frames: new Queue(),\r\n timeouts: new Queue(),\r\n immediates: new Queue(),\r\n timer: () => globals.window.performance || globals.window.Date,\r\n transforms: [],\r\n\r\n frame (fn) {\r\n // Store the node\r\n const node = Animator.frames.push({ run: fn })\r\n\r\n // Request an animation frame if we don't have one\r\n if (Animator.nextDraw === null) {\r\n Animator.nextDraw = globals.window.requestAnimationFrame(Animator._draw)\r\n }\r\n\r\n // Return the node so we can remove it easily\r\n return node\r\n },\r\n\r\n timeout (fn, delay) {\r\n delay = delay || 0\r\n\r\n // Work out when the event should fire\r\n const time = Animator.timer().now() + delay\r\n\r\n // Add the timeout to the end of the queue\r\n const node = Animator.timeouts.push({ run: fn, time: time })\r\n\r\n // Request another animation frame if we need one\r\n if (Animator.nextDraw === null) {\r\n Animator.nextDraw = globals.window.requestAnimationFrame(Animator._draw)\r\n }\r\n\r\n return node\r\n },\r\n\r\n immediate (fn) {\r\n // Add the immediate fn to the end of the queue\r\n const node = Animator.immediates.push(fn)\r\n // Request another animation frame if we need one\r\n if (Animator.nextDraw === null) {\r\n Animator.nextDraw = globals.window.requestAnimationFrame(Animator._draw)\r\n }\r\n\r\n return node\r\n },\r\n\r\n cancelFrame (node) {\r\n node != null && Animator.frames.remove(node)\r\n },\r\n\r\n clearTimeout (node) {\r\n node != null && Animator.timeouts.remove(node)\r\n },\r\n\r\n cancelImmediate (node) {\r\n node != null && Animator.immediates.remove(node)\r\n },\r\n\r\n _draw (now) {\r\n // Run all the timeouts we can run, if they are not ready yet, add them\r\n // to the end of the queue immediately! (bad timeouts!!! [sarcasm])\r\n let nextTimeout = null\r\n const lastTimeout = Animator.timeouts.last()\r\n while ((nextTimeout = Animator.timeouts.shift())) {\r\n // Run the timeout if its time, or push it to the end\r\n if (now >= nextTimeout.time) {\r\n nextTimeout.run()\r\n } else {\r\n Animator.timeouts.push(nextTimeout)\r\n }\r\n\r\n // If we hit the last item, we should stop shifting out more items\r\n if (nextTimeout === lastTimeout) break\r\n }\r\n\r\n // Run all of the animation frames\r\n let nextFrame = null\r\n const lastFrame = Animator.frames.last()\r\n while ((nextFrame !== lastFrame) && (nextFrame = Animator.frames.shift())) {\r\n nextFrame.run(now)\r\n }\r\n\r\n let nextImmediate = null\r\n while ((nextImmediate = Animator.immediates.shift())) {\r\n nextImmediate()\r\n }\r\n\r\n // If we have remaining timeouts or frames, draw until we don't anymore\r\n Animator.nextDraw = Animator.timeouts.first() || Animator.frames.first()\r\n ? globals.window.requestAnimationFrame(Animator._draw)\r\n : null\r\n }\r\n}\r\n\r\nexport default Animator\r\n","import { globals } from '../utils/window.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Animator from './Animator.js'\r\nimport EventTarget from '../types/EventTarget.js'\r\n\r\nconst makeSchedule = function (runnerInfo) {\r\n const start = runnerInfo.start\r\n const duration = runnerInfo.runner.duration()\r\n const end = start + duration\r\n return { start: start, duration: duration, end: end, runner: runnerInfo.runner }\r\n}\r\n\r\nconst defaultSource = function () {\r\n const w = globals.window\r\n return (w.performance || w.Date).now()\r\n}\r\n\r\nexport default class Timeline extends EventTarget {\r\n // Construct a new timeline on the given element\r\n constructor (timeSource = defaultSource) {\r\n super()\r\n\r\n this._timeSource = timeSource\r\n\r\n // Store the timing variables\r\n this._startTime = 0\r\n this._speed = 1.0\r\n\r\n // Determines how long a runner is hold in memory. Can be a dt or true/false\r\n this._persist = 0\r\n\r\n // Keep track of the running animations and their starting parameters\r\n this._nextFrame = null\r\n this._paused = true\r\n this._runners = []\r\n this._runnerIds = []\r\n this._lastRunnerId = -1\r\n this._time = 0\r\n this._lastSourceTime = 0\r\n this._lastStepTime = 0\r\n\r\n // Make sure that step is always called in class context\r\n this._step = this._stepFn.bind(this, false)\r\n this._stepImmediate = this._stepFn.bind(this, true)\r\n }\r\n\r\n active () {\r\n return !!this._nextFrame\r\n }\r\n\r\n finish () {\r\n // Go to end and pause\r\n this.time(this.getEndTimeOfTimeline() + 1)\r\n return this.pause()\r\n }\r\n\r\n // Calculates the end of the timeline\r\n getEndTime () {\r\n const lastRunnerInfo = this.getLastRunnerInfo()\r\n const lastDuration = lastRunnerInfo ? lastRunnerInfo.runner.duration() : 0\r\n const lastStartTime = lastRunnerInfo ? lastRunnerInfo.start : this._time\r\n return lastStartTime + lastDuration\r\n }\r\n\r\n getEndTimeOfTimeline () {\r\n const endTimes = this._runners.map((i) => i.start + i.runner.duration())\r\n return Math.max(0, ...endTimes)\r\n }\r\n\r\n getLastRunnerInfo () {\r\n return this.getRunnerInfoById(this._lastRunnerId)\r\n }\r\n\r\n getRunnerInfoById (id) {\r\n return this._runners[this._runnerIds.indexOf(id)] || null\r\n }\r\n\r\n pause () {\r\n this._paused = true\r\n return this._continue()\r\n }\r\n\r\n persist (dtOrForever) {\r\n if (dtOrForever == null) return this._persist\r\n this._persist = dtOrForever\r\n return this\r\n }\r\n\r\n play () {\r\n // Now make sure we are not paused and continue the animation\r\n this._paused = false\r\n return this.updateTime()._continue()\r\n }\r\n\r\n reverse (yes) {\r\n const currentSpeed = this.speed()\r\n if (yes == null) return this.speed(-currentSpeed)\r\n\r\n const positive = Math.abs(currentSpeed)\r\n return this.speed(yes ? -positive : positive)\r\n }\r\n\r\n // schedules a runner on the timeline\r\n schedule (runner, delay, when) {\r\n if (runner == null) {\r\n return this._runners.map(makeSchedule)\r\n }\r\n\r\n // The start time for the next animation can either be given explicitly,\r\n // derived from the current timeline time or it can be relative to the\r\n // last start time to chain animations directly\r\n\r\n let absoluteStartTime = 0\r\n const endTime = this.getEndTime()\r\n delay = delay || 0\r\n\r\n // Work out when to start the animation\r\n if (when == null || when === 'last' || when === 'after') {\r\n // Take the last time and increment\r\n absoluteStartTime = endTime\r\n } else if (when === 'absolute' || when === 'start') {\r\n absoluteStartTime = delay\r\n delay = 0\r\n } else if (when === 'now') {\r\n absoluteStartTime = this._time\r\n } else if (when === 'relative') {\r\n const runnerInfo = this.getRunnerInfoById(runner.id)\r\n if (runnerInfo) {\r\n absoluteStartTime = runnerInfo.start + delay\r\n delay = 0\r\n }\r\n } else if (when === 'with-last') {\r\n const lastRunnerInfo = this.getLastRunnerInfo()\r\n const lastStartTime = lastRunnerInfo ? lastRunnerInfo.start : this._time\r\n absoluteStartTime = lastStartTime\r\n } else {\r\n throw new Error('Invalid value for the \"when\" parameter')\r\n }\r\n\r\n // Manage runner\r\n runner.unschedule()\r\n runner.timeline(this)\r\n\r\n const persist = runner.persist()\r\n const runnerInfo = {\r\n persist: persist === null ? this._persist : persist,\r\n start: absoluteStartTime + delay,\r\n runner\r\n }\r\n\r\n this._lastRunnerId = runner.id\r\n\r\n this._runners.push(runnerInfo)\r\n this._runners.sort((a, b) => a.start - b.start)\r\n this._runnerIds = this._runners.map(info => info.runner.id)\r\n\r\n this.updateTime()._continue()\r\n return this\r\n }\r\n\r\n seek (dt) {\r\n return this.time(this._time + dt)\r\n }\r\n\r\n source (fn) {\r\n if (fn == null) return this._timeSource\r\n this._timeSource = fn\r\n return this\r\n }\r\n\r\n speed (speed) {\r\n if (speed == null) return this._speed\r\n this._speed = speed\r\n return this\r\n }\r\n\r\n stop () {\r\n // Go to start and pause\r\n this.time(0)\r\n return this.pause()\r\n }\r\n\r\n time (time) {\r\n if (time == null) return this._time\r\n this._time = time\r\n return this._continue(true)\r\n }\r\n\r\n // Remove the runner from this timeline\r\n unschedule (runner) {\r\n const index = this._runnerIds.indexOf(runner.id)\r\n if (index < 0) return this\r\n\r\n this._runners.splice(index, 1)\r\n this._runnerIds.splice(index, 1)\r\n\r\n runner.timeline(null)\r\n return this\r\n }\r\n\r\n // Makes sure, that after pausing the time doesn't jump\r\n updateTime () {\r\n if (!this.active()) {\r\n this._lastSourceTime = this._timeSource()\r\n }\r\n return this\r\n }\r\n\r\n // Checks if we are running and continues the animation\r\n _continue (immediateStep = false) {\r\n Animator.cancelFrame(this._nextFrame)\r\n this._nextFrame = null\r\n\r\n if (immediateStep) return this._stepImmediate()\r\n if (this._paused) return this\r\n\r\n this._nextFrame = Animator.frame(this._step)\r\n return this\r\n }\r\n\r\n _stepFn (immediateStep = false) {\r\n // Get the time delta from the last time and update the time\r\n const time = this._timeSource()\r\n let dtSource = time - this._lastSourceTime\r\n\r\n if (immediateStep) dtSource = 0\r\n\r\n const dtTime = this._speed * dtSource + (this._time - this._lastStepTime)\r\n this._lastSourceTime = time\r\n\r\n // Only update the time if we use the timeSource.\r\n // Otherwise use the current time\r\n if (!immediateStep) {\r\n // Update the time\r\n this._time += dtTime\r\n this._time = this._time < 0 ? 0 : this._time\r\n }\r\n this._lastStepTime = this._time\r\n this.fire('time', this._time)\r\n\r\n // This is for the case that the timeline was seeked so that the time\r\n // is now before the startTime of the runner. Thats why we need to set\r\n // the runner to position 0\r\n\r\n // FIXME:\r\n // However, reseting in insertion order leads to bugs. Considering the case,\r\n // where 2 runners change the same attribute but in different times,\r\n // reseting both of them will lead to the case where the later defined\r\n // runner always wins the reset even if the other runner started earlier\r\n // and therefore should win the attribute battle\r\n // this can be solved by reseting them backwards\r\n for (let k = this._runners.length; k--;) {\r\n // Get and run the current runner and ignore it if its inactive\r\n const runnerInfo = this._runners[k]\r\n const runner = runnerInfo.runner\r\n\r\n // Make sure that we give the actual difference\r\n // between runner start time and now\r\n const dtToStart = this._time - runnerInfo.start\r\n\r\n // Dont run runner if not started yet\r\n // and try to reset it\r\n if (dtToStart <= 0) {\r\n runner.reset()\r\n }\r\n }\r\n\r\n // Run all of the runners directly\r\n let runnersLeft = false\r\n for (let i = 0, len = this._runners.length; i < len; i++) {\r\n // Get and run the current runner and ignore it if its inactive\r\n const runnerInfo = this._runners[i]\r\n const runner = runnerInfo.runner\r\n let dt = dtTime\r\n\r\n // Make sure that we give the actual difference\r\n // between runner start time and now\r\n const dtToStart = this._time - runnerInfo.start\r\n\r\n // Dont run runner if not started yet\r\n if (dtToStart <= 0) {\r\n runnersLeft = true\r\n continue\r\n } else if (dtToStart < dt) {\r\n // Adjust dt to make sure that animation is on point\r\n dt = dtToStart\r\n }\r\n\r\n if (!runner.active()) continue\r\n\r\n // If this runner is still going, signal that we need another animation\r\n // frame, otherwise, remove the completed runner\r\n const finished = runner.step(dt).done\r\n if (!finished) {\r\n runnersLeft = true\r\n // continue\r\n } else if (runnerInfo.persist !== true) {\r\n // runner is finished. And runner might get removed\r\n const endTime = runner.duration() - runner.time() + this._time\r\n\r\n if (endTime + runnerInfo.persist < this._time) {\r\n // Delete runner and correct index\r\n runner.unschedule()\r\n --i\r\n --len\r\n }\r\n }\r\n }\r\n\r\n // Basically: we continue when there are runners right from us in time\r\n // when -->, and when runners are left from us when <--\r\n if ((runnersLeft && !(this._speed < 0 && this._time === 0)) || (this._runnerIds.length && this._speed < 0 && this._time > 0)) {\r\n this._continue()\r\n } else {\r\n this.pause()\r\n this.fire('finished')\r\n }\r\n\r\n return this\r\n }\r\n\r\n}\r\n\r\nregisterMethods({\r\n Element: {\r\n timeline: function (timeline) {\r\n if (timeline == null) {\r\n this._timeline = (this._timeline || new Timeline())\r\n return this._timeline\r\n } else {\r\n this._timeline = timeline\r\n return this\r\n }\r\n }\r\n }\r\n})\r\n","import { Controller, Ease, Stepper } from './Controller.js'\r\nimport { extend, register } from '../utils/adopter.js'\r\nimport { from, to } from '../modules/core/gradiented.js'\r\nimport { getOrigin } from '../utils/utils.js'\r\nimport { noop, timeline } from '../modules/core/defaults.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { rx, ry } from '../modules/core/circled.js'\r\nimport Animator from './Animator.js'\r\nimport Box from '../types/Box.js'\r\nimport EventTarget from '../types/EventTarget.js'\r\nimport Matrix from '../types/Matrix.js'\r\nimport Morphable, { TransformBag, ObjectBag } from './Morphable.js'\r\nimport Point from '../types/Point.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport Timeline from './Timeline.js'\r\n\r\nexport default class Runner extends EventTarget {\r\n constructor (options) {\r\n super()\r\n\r\n // Store a unique id on the runner, so that we can identify it later\r\n this.id = Runner.id++\r\n\r\n // Ensure a default value\r\n options = options == null\r\n ? timeline.duration\r\n : options\r\n\r\n // Ensure that we get a controller\r\n options = typeof options === 'function'\r\n ? new Controller(options)\r\n : options\r\n\r\n // Declare all of the variables\r\n this._element = null\r\n this._timeline = null\r\n this.done = false\r\n this._queue = []\r\n\r\n // Work out the stepper and the duration\r\n this._duration = typeof options === 'number' && options\r\n this._isDeclarative = options instanceof Controller\r\n this._stepper = this._isDeclarative ? options : new Ease()\r\n\r\n // We copy the current values from the timeline because they can change\r\n this._history = {}\r\n\r\n // Store the state of the runner\r\n this.enabled = true\r\n this._time = 0\r\n this._lastTime = 0\r\n\r\n // At creation, the runner is in reseted state\r\n this._reseted = true\r\n\r\n // Save transforms applied to this runner\r\n this.transforms = new Matrix()\r\n this.transformId = 1\r\n\r\n // Looping variables\r\n this._haveReversed = false\r\n this._reverse = false\r\n this._loopsDone = 0\r\n this._swing = false\r\n this._wait = 0\r\n this._times = 1\r\n\r\n this._frameId = null\r\n\r\n // Stores how long a runner is stored after beeing done\r\n this._persist = this._isDeclarative ? true : null\r\n }\r\n\r\n static sanitise (duration, delay, when) {\r\n // Initialise the default parameters\r\n let times = 1\r\n let swing = false\r\n let wait = 0\r\n duration = duration || timeline.duration\r\n delay = delay || timeline.delay\r\n when = when || 'last'\r\n\r\n // If we have an object, unpack the values\r\n if (typeof duration === 'object' && !(duration instanceof Stepper)) {\r\n delay = duration.delay || delay\r\n when = duration.when || when\r\n swing = duration.swing || swing\r\n times = duration.times || times\r\n wait = duration.wait || wait\r\n duration = duration.duration || timeline.duration\r\n }\r\n\r\n return {\r\n duration: duration,\r\n delay: delay,\r\n swing: swing,\r\n times: times,\r\n wait: wait,\r\n when: when\r\n }\r\n }\r\n\r\n active (enabled) {\r\n if (enabled == null) return this.enabled\r\n this.enabled = enabled\r\n return this\r\n }\r\n\r\n /*\r\n Private Methods\r\n ===============\r\n Methods that shouldn't be used externally\r\n */\r\n addTransform (transform, index) {\r\n this.transforms.lmultiplyO(transform)\r\n return this\r\n }\r\n\r\n after (fn) {\r\n return this.on('finished', fn)\r\n }\r\n\r\n animate (duration, delay, when) {\r\n const o = Runner.sanitise(duration, delay, when)\r\n const runner = new Runner(o.duration)\r\n if (this._timeline) runner.timeline(this._timeline)\r\n if (this._element) runner.element(this._element)\r\n return runner.loop(o).schedule(o.delay, o.when)\r\n }\r\n\r\n clearTransform () {\r\n this.transforms = new Matrix()\r\n return this\r\n }\r\n\r\n // TODO: Keep track of all transformations so that deletion is faster\r\n clearTransformsFromQueue () {\r\n if (!this.done || !this._timeline || !this._timeline._runnerIds.includes(this.id)) {\r\n this._queue = this._queue.filter((item) => {\r\n return !item.isTransform\r\n })\r\n }\r\n }\r\n\r\n delay (delay) {\r\n return this.animate(0, delay)\r\n }\r\n\r\n duration () {\r\n return this._times * (this._wait + this._duration) - this._wait\r\n }\r\n\r\n during (fn) {\r\n return this.queue(null, fn)\r\n }\r\n\r\n ease (fn) {\r\n this._stepper = new Ease(fn)\r\n return this\r\n }\r\n /*\r\n Runner Definitions\r\n ==================\r\n These methods help us define the runtime behaviour of the Runner or they\r\n help us make new runners from the current runner\r\n */\r\n\r\n element (element) {\r\n if (element == null) return this._element\r\n this._element = element\r\n element._prepareRunner()\r\n return this\r\n }\r\n\r\n finish () {\r\n return this.step(Infinity)\r\n }\r\n\r\n loop (times, swing, wait) {\r\n // Deal with the user passing in an object\r\n if (typeof times === 'object') {\r\n swing = times.swing\r\n wait = times.wait\r\n times = times.times\r\n }\r\n\r\n // Sanitise the values and store them\r\n this._times = times || Infinity\r\n this._swing = swing || false\r\n this._wait = wait || 0\r\n\r\n // Allow true to be passed\r\n if (this._times === true) { this._times = Infinity }\r\n\r\n return this\r\n }\r\n\r\n loops (p) {\r\n const loopDuration = this._duration + this._wait\r\n if (p == null) {\r\n const loopsDone = Math.floor(this._time / loopDuration)\r\n const relativeTime = (this._time - loopsDone * loopDuration)\r\n const position = relativeTime / this._duration\r\n return Math.min(loopsDone + position, this._times)\r\n }\r\n const whole = Math.floor(p)\r\n const partial = p % 1\r\n const time = loopDuration * whole + this._duration * partial\r\n return this.time(time)\r\n }\r\n\r\n persist (dtOrForever) {\r\n if (dtOrForever == null) return this._persist\r\n this._persist = dtOrForever\r\n return this\r\n }\r\n\r\n position (p) {\r\n // Get all of the variables we need\r\n const x = this._time\r\n const d = this._duration\r\n const w = this._wait\r\n const t = this._times\r\n const s = this._swing\r\n const r = this._reverse\r\n let position\r\n\r\n if (p == null) {\r\n /*\r\n This function converts a time to a position in the range [0, 1]\r\n The full explanation can be found in this desmos demonstration\r\n https://www.desmos.com/calculator/u4fbavgche\r\n The logic is slightly simplified here because we can use booleans\r\n */\r\n\r\n // Figure out the value without thinking about the start or end time\r\n const f = function (x) {\r\n const swinging = s * Math.floor(x % (2 * (w + d)) / (w + d))\r\n const backwards = (swinging && !r) || (!swinging && r)\r\n const uncliped = Math.pow(-1, backwards) * (x % (w + d)) / d + backwards\r\n const clipped = Math.max(Math.min(uncliped, 1), 0)\r\n return clipped\r\n }\r\n\r\n // Figure out the value by incorporating the start time\r\n const endTime = t * (w + d) - w\r\n position = x <= 0\r\n ? Math.round(f(1e-5))\r\n : x < endTime\r\n ? f(x)\r\n : Math.round(f(endTime - 1e-5))\r\n return position\r\n }\r\n\r\n // Work out the loops done and add the position to the loops done\r\n const loopsDone = Math.floor(this.loops())\r\n const swingForward = s && (loopsDone % 2 === 0)\r\n const forwards = (swingForward && !r) || (r && swingForward)\r\n position = loopsDone + (forwards ? p : 1 - p)\r\n return this.loops(position)\r\n }\r\n\r\n progress (p) {\r\n if (p == null) {\r\n return Math.min(1, this._time / this.duration())\r\n }\r\n return this.time(p * this.duration())\r\n }\r\n\r\n /*\r\n Basic Functionality\r\n ===================\r\n These methods allow us to attach basic functions to the runner directly\r\n */\r\n queue (initFn, runFn, retargetFn, isTransform) {\r\n this._queue.push({\r\n initialiser: initFn || noop,\r\n runner: runFn || noop,\r\n retarget: retargetFn,\r\n isTransform: isTransform,\r\n initialised: false,\r\n finished: false\r\n })\r\n const timeline = this.timeline()\r\n timeline && this.timeline()._continue()\r\n return this\r\n }\r\n\r\n reset () {\r\n if (this._reseted) return this\r\n this.time(0)\r\n this._reseted = true\r\n return this\r\n }\r\n\r\n reverse (reverse) {\r\n this._reverse = reverse == null ? !this._reverse : reverse\r\n return this\r\n }\r\n\r\n schedule (timeline, delay, when) {\r\n // The user doesn't need to pass a timeline if we already have one\r\n if (!(timeline instanceof Timeline)) {\r\n when = delay\r\n delay = timeline\r\n timeline = this.timeline()\r\n }\r\n\r\n // If there is no timeline, yell at the user...\r\n if (!timeline) {\r\n throw Error('Runner cannot be scheduled without timeline')\r\n }\r\n\r\n // Schedule the runner on the timeline provided\r\n timeline.schedule(this, delay, when)\r\n return this\r\n }\r\n\r\n step (dt) {\r\n // If we are inactive, this stepper just gets skipped\r\n if (!this.enabled) return this\r\n\r\n // Update the time and get the new position\r\n dt = dt == null ? 16 : dt\r\n this._time += dt\r\n const position = this.position()\r\n\r\n // Figure out if we need to run the stepper in this frame\r\n const running = this._lastPosition !== position && this._time >= 0\r\n this._lastPosition = position\r\n\r\n // Figure out if we just started\r\n const duration = this.duration()\r\n const justStarted = this._lastTime <= 0 && this._time > 0\r\n const justFinished = this._lastTime < duration && this._time >= duration\r\n\r\n this._lastTime = this._time\r\n if (justStarted) {\r\n this.fire('start', this)\r\n }\r\n\r\n // Work out if the runner is finished set the done flag here so animations\r\n // know, that they are running in the last step (this is good for\r\n // transformations which can be merged)\r\n const declarative = this._isDeclarative\r\n this.done = !declarative && !justFinished && this._time >= duration\r\n\r\n // Runner is running. So its not in reseted state anymore\r\n this._reseted = false\r\n\r\n let converged = false\r\n // Call initialise and the run function\r\n if (running || declarative) {\r\n this._initialise(running)\r\n\r\n // clear the transforms on this runner so they dont get added again and again\r\n this.transforms = new Matrix()\r\n converged = this._run(declarative ? dt : position)\r\n\r\n this.fire('step', this)\r\n }\r\n // correct the done flag here\r\n // declaritive animations itself know when they converged\r\n this.done = this.done || (converged && declarative)\r\n if (justFinished) {\r\n this.fire('finished', this)\r\n }\r\n return this\r\n }\r\n\r\n /*\r\n Runner animation methods\r\n ========================\r\n Control how the animation plays\r\n */\r\n time (time) {\r\n if (time == null) {\r\n return this._time\r\n }\r\n const dt = time - this._time\r\n this.step(dt)\r\n return this\r\n }\r\n\r\n timeline (timeline) {\r\n // check explicitly for undefined so we can set the timeline to null\r\n if (typeof timeline === 'undefined') return this._timeline\r\n this._timeline = timeline\r\n return this\r\n }\r\n\r\n unschedule () {\r\n const timeline = this.timeline()\r\n timeline && timeline.unschedule(this)\r\n return this\r\n }\r\n\r\n // Run each initialise function in the runner if required\r\n _initialise (running) {\r\n // If we aren't running, we shouldn't initialise when not declarative\r\n if (!running && !this._isDeclarative) return\r\n\r\n // Loop through all of the initialisers\r\n for (let i = 0, len = this._queue.length; i < len; ++i) {\r\n // Get the current initialiser\r\n const current = this._queue[i]\r\n\r\n // Determine whether we need to initialise\r\n const needsIt = this._isDeclarative || (!current.initialised && running)\r\n running = !current.finished\r\n\r\n // Call the initialiser if we need to\r\n if (needsIt && running) {\r\n current.initialiser.call(this)\r\n current.initialised = true\r\n }\r\n }\r\n }\r\n\r\n // Save a morpher to the morpher list so that we can retarget it later\r\n _rememberMorpher (method, morpher) {\r\n this._history[method] = {\r\n morpher: morpher,\r\n caller: this._queue[this._queue.length - 1]\r\n }\r\n\r\n // We have to resume the timeline in case a controller\r\n // is already done without being ever run\r\n // This can happen when e.g. this is done:\r\n // anim = el.animate(new SVG.Spring)\r\n // and later\r\n // anim.move(...)\r\n if (this._isDeclarative) {\r\n const timeline = this.timeline()\r\n timeline && timeline.play()\r\n }\r\n }\r\n\r\n // Try to set the target for a morpher if the morpher exists, otherwise\r\n // Run each run function for the position or dt given\r\n _run (positionOrDt) {\r\n // Run all of the _queue directly\r\n let allfinished = true\r\n for (let i = 0, len = this._queue.length; i < len; ++i) {\r\n // Get the current function to run\r\n const current = this._queue[i]\r\n\r\n // Run the function if its not finished, we keep track of the finished\r\n // flag for the sake of declarative _queue\r\n const converged = current.runner.call(this, positionOrDt)\r\n current.finished = current.finished || (converged === true)\r\n allfinished = allfinished && current.finished\r\n }\r\n\r\n // We report when all of the constructors are finished\r\n return allfinished\r\n }\r\n\r\n // do nothing and return false\r\n _tryRetarget (method, target, extra) {\r\n if (this._history[method]) {\r\n // if the last method wasnt even initialised, throw it away\r\n if (!this._history[method].caller.initialised) {\r\n const index = this._queue.indexOf(this._history[method].caller)\r\n this._queue.splice(index, 1)\r\n return false\r\n }\r\n\r\n // for the case of transformations, we use the special retarget function\r\n // which has access to the outer scope\r\n if (this._history[method].caller.retarget) {\r\n this._history[method].caller.retarget.call(this, target, extra)\r\n // for everything else a simple morpher change is sufficient\r\n } else {\r\n this._history[method].morpher.to(target)\r\n }\r\n\r\n this._history[method].caller.finished = false\r\n const timeline = this.timeline()\r\n timeline && timeline.play()\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n}\r\n\r\nRunner.id = 0\r\n\r\nexport class FakeRunner {\r\n constructor (transforms = new Matrix(), id = -1, done = true) {\r\n this.transforms = transforms\r\n this.id = id\r\n this.done = done\r\n }\r\n\r\n clearTransformsFromQueue () { }\r\n}\r\n\r\nextend([ Runner, FakeRunner ], {\r\n mergeWith (runner) {\r\n return new FakeRunner(\r\n runner.transforms.lmultiply(this.transforms),\r\n runner.id\r\n )\r\n }\r\n})\r\n\r\n// FakeRunner.emptyRunner = new FakeRunner()\r\n\r\nconst lmultiply = (last, curr) => last.lmultiplyO(curr)\r\nconst getRunnerTransform = (runner) => runner.transforms\r\n\r\nfunction mergeTransforms () {\r\n // Find the matrix to apply to the element and apply it\r\n const runners = this._transformationRunners.runners\r\n const netTransform = runners\r\n .map(getRunnerTransform)\r\n .reduce(lmultiply, new Matrix())\r\n\r\n this.transform(netTransform)\r\n\r\n this._transformationRunners.merge()\r\n\r\n if (this._transformationRunners.length() === 1) {\r\n this._frameId = null\r\n }\r\n}\r\n\r\nexport class RunnerArray {\r\n constructor () {\r\n this.runners = []\r\n this.ids = []\r\n }\r\n\r\n add (runner) {\r\n if (this.runners.includes(runner)) return\r\n const id = runner.id + 1\r\n\r\n this.runners.push(runner)\r\n this.ids.push(id)\r\n\r\n return this\r\n }\r\n\r\n clearBefore (id) {\r\n const deleteCnt = this.ids.indexOf(id + 1) || 1\r\n this.ids.splice(0, deleteCnt, 0)\r\n this.runners.splice(0, deleteCnt, new FakeRunner())\r\n .forEach((r) => r.clearTransformsFromQueue())\r\n return this\r\n }\r\n\r\n edit (id, newRunner) {\r\n const index = this.ids.indexOf(id + 1)\r\n this.ids.splice(index, 1, id + 1)\r\n this.runners.splice(index, 1, newRunner)\r\n return this\r\n }\r\n\r\n getByID (id) {\r\n return this.runners[this.ids.indexOf(id + 1)]\r\n }\r\n\r\n length () {\r\n return this.ids.length\r\n }\r\n\r\n merge () {\r\n let lastRunner = null\r\n for (let i = 0; i < this.runners.length; ++i) {\r\n const runner = this.runners[i]\r\n\r\n const condition = lastRunner\r\n && runner.done && lastRunner.done\r\n // don't merge runner when persisted on timeline\r\n && (!runner._timeline || !runner._timeline._runnerIds.includes(runner.id))\r\n && (!lastRunner._timeline || !lastRunner._timeline._runnerIds.includes(lastRunner.id))\r\n\r\n if (condition) {\r\n // the +1 happens in the function\r\n this.remove(runner.id)\r\n const newRunner = runner.mergeWith(lastRunner)\r\n this.edit(lastRunner.id, newRunner)\r\n lastRunner = newRunner\r\n --i\r\n } else {\r\n lastRunner = runner\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n remove (id) {\r\n const index = this.ids.indexOf(id + 1)\r\n this.ids.splice(index, 1)\r\n this.runners.splice(index, 1)\r\n return this\r\n }\r\n\r\n}\r\n\r\nregisterMethods({\r\n Element: {\r\n animate (duration, delay, when) {\r\n const o = Runner.sanitise(duration, delay, when)\r\n const timeline = this.timeline()\r\n return new Runner(o.duration)\r\n .loop(o)\r\n .element(this)\r\n .timeline(timeline.play())\r\n .schedule(o.delay, o.when)\r\n },\r\n\r\n delay (by, when) {\r\n return this.animate(0, by, when)\r\n },\r\n\r\n // this function searches for all runners on the element and deletes the ones\r\n // which run before the current one. This is because absolute transformations\r\n // overwfrite anything anyway so there is no need to waste time computing\r\n // other runners\r\n _clearTransformRunnersBefore (currentRunner) {\r\n this._transformationRunners.clearBefore(currentRunner.id)\r\n },\r\n\r\n _currentTransform (current) {\r\n return this._transformationRunners.runners\r\n // we need the equal sign here to make sure, that also transformations\r\n // on the same runner which execute before the current transformation are\r\n // taken into account\r\n .filter((runner) => runner.id <= current.id)\r\n .map(getRunnerTransform)\r\n .reduce(lmultiply, new Matrix())\r\n },\r\n\r\n _addRunner (runner) {\r\n this._transformationRunners.add(runner)\r\n\r\n // Make sure that the runner merge is executed at the very end of\r\n // all Animator functions. Thats why we use immediate here to execute\r\n // the merge right after all frames are run\r\n Animator.cancelImmediate(this._frameId)\r\n this._frameId = Animator.immediate(mergeTransforms.bind(this))\r\n },\r\n\r\n _prepareRunner () {\r\n if (this._frameId == null) {\r\n this._transformationRunners = new RunnerArray()\r\n .add(new FakeRunner(new Matrix(this)))\r\n }\r\n }\r\n }\r\n})\r\n\r\n// Will output the elements from array A that are not in the array B\r\nconst difference = (a, b) => a.filter(x => !b.includes(x))\r\n\r\nextend(Runner, {\r\n attr (a, v) {\r\n return this.styleAttr('attr', a, v)\r\n },\r\n\r\n // Add animatable styles\r\n css (s, v) {\r\n return this.styleAttr('css', s, v)\r\n },\r\n\r\n styleAttr (type, nameOrAttrs, val) {\r\n if (typeof nameOrAttrs === 'string') {\r\n return this.styleAttr(type, { [nameOrAttrs]: val })\r\n }\r\n\r\n let attrs = nameOrAttrs\r\n if (this._tryRetarget(type, attrs)) return this\r\n\r\n let morpher = new Morphable(this._stepper).to(attrs)\r\n let keys = Object.keys(attrs)\r\n\r\n this.queue(function () {\r\n morpher = morpher.from(this.element()[type](keys))\r\n }, function (pos) {\r\n this.element()[type](morpher.at(pos).valueOf())\r\n return morpher.done()\r\n }, function (newToAttrs) {\r\n\r\n // Check if any new keys were added\r\n const newKeys = Object.keys(newToAttrs)\r\n const differences = difference(newKeys, keys)\r\n\r\n // If their are new keys, initialize them and add them to morpher\r\n if (differences.length) {\r\n // Get the values\r\n const addedFromAttrs = this.element()[type](differences)\r\n\r\n // Get the already initialized values\r\n const oldFromAttrs = new ObjectBag(morpher.from()).valueOf()\r\n\r\n // Merge old and new\r\n Object.assign(oldFromAttrs, addedFromAttrs)\r\n morpher.from(oldFromAttrs)\r\n }\r\n\r\n // Get the object from the morpher\r\n const oldToAttrs = new ObjectBag(morpher.to()).valueOf()\r\n\r\n // Merge in new attributes\r\n Object.assign(oldToAttrs, newToAttrs)\r\n\r\n // Change morpher target\r\n morpher.to(oldToAttrs)\r\n\r\n // Make sure that we save the work we did so we don't need it to do again\r\n keys = newKeys\r\n attrs = newToAttrs\r\n })\r\n\r\n this._rememberMorpher(type, morpher)\r\n return this\r\n },\r\n\r\n zoom (level, point) {\r\n if (this._tryRetarget('zoom', level, point)) return this\r\n\r\n let morpher = new Morphable(this._stepper).to(new SVGNumber(level))\r\n\r\n this.queue(function () {\r\n morpher = morpher.from(this.element().zoom())\r\n }, function (pos) {\r\n this.element().zoom(morpher.at(pos), point)\r\n return morpher.done()\r\n }, function (newLevel, newPoint) {\r\n point = newPoint\r\n morpher.to(newLevel)\r\n })\r\n\r\n this._rememberMorpher('zoom', morpher)\r\n return this\r\n },\r\n\r\n /**\r\n ** absolute transformations\r\n **/\r\n\r\n //\r\n // M v -----|-----(D M v = F v)------|-----> T v\r\n //\r\n // 1. define the final state (T) and decompose it (once)\r\n // t = [tx, ty, the, lam, sy, sx]\r\n // 2. on every frame: pull the current state of all previous transforms\r\n // (M - m can change)\r\n // and then write this as m = [tx0, ty0, the0, lam0, sy0, sx0]\r\n // 3. Find the interpolated matrix F(pos) = m + pos * (t - m)\r\n // - Note F(0) = M\r\n // - Note F(1) = T\r\n // 4. Now you get the delta matrix as a result: D = F * inv(M)\r\n\r\n transform (transforms, relative, affine) {\r\n // If we have a declarative function, we should retarget it if possible\r\n relative = transforms.relative || relative\r\n if (this._isDeclarative && !relative && this._tryRetarget('transform', transforms)) {\r\n return this\r\n }\r\n\r\n // Parse the parameters\r\n const isMatrix = Matrix.isMatrixLike(transforms)\r\n affine = transforms.affine != null\r\n ? transforms.affine\r\n : (affine != null ? affine : !isMatrix)\r\n\r\n // Create a morepher and set its type\r\n const morpher = new Morphable(this._stepper)\r\n .type(affine ? TransformBag : Matrix)\r\n\r\n let origin\r\n let element\r\n let current\r\n let currentAngle\r\n let startTransform\r\n\r\n function setup () {\r\n // make sure element and origin is defined\r\n element = element || this.element()\r\n origin = origin || getOrigin(transforms, element)\r\n\r\n startTransform = new Matrix(relative ? undefined : element)\r\n\r\n // add the runner to the element so it can merge transformations\r\n element._addRunner(this)\r\n\r\n // Deactivate all transforms that have run so far if we are absolute\r\n if (!relative) {\r\n element._clearTransformRunnersBefore(this)\r\n }\r\n }\r\n\r\n function run (pos) {\r\n // clear all other transforms before this in case something is saved\r\n // on this runner. We are absolute. We dont need these!\r\n if (!relative) this.clearTransform()\r\n\r\n const { x, y } = new Point(origin).transform(element._currentTransform(this))\r\n\r\n let target = new Matrix({ ...transforms, origin: [ x, y ] })\r\n let start = this._isDeclarative && current\r\n ? current\r\n : startTransform\r\n\r\n if (affine) {\r\n target = target.decompose(x, y)\r\n start = start.decompose(x, y)\r\n\r\n // Get the current and target angle as it was set\r\n const rTarget = target.rotate\r\n const rCurrent = start.rotate\r\n\r\n // Figure out the shortest path to rotate directly\r\n const possibilities = [ rTarget - 360, rTarget, rTarget + 360 ]\r\n const distances = possibilities.map(a => Math.abs(a - rCurrent))\r\n const shortest = Math.min(...distances)\r\n const index = distances.indexOf(shortest)\r\n target.rotate = possibilities[index]\r\n }\r\n\r\n if (relative) {\r\n // we have to be careful here not to overwrite the rotation\r\n // with the rotate method of Matrix\r\n if (!isMatrix) {\r\n target.rotate = transforms.rotate || 0\r\n }\r\n if (this._isDeclarative && currentAngle) {\r\n start.rotate = currentAngle\r\n }\r\n }\r\n\r\n morpher.from(start)\r\n morpher.to(target)\r\n\r\n const affineParameters = morpher.at(pos)\r\n currentAngle = affineParameters.rotate\r\n current = new Matrix(affineParameters)\r\n\r\n this.addTransform(current)\r\n element._addRunner(this)\r\n return morpher.done()\r\n }\r\n\r\n function retarget (newTransforms) {\r\n // only get a new origin if it changed since the last call\r\n if (\r\n (newTransforms.origin || 'center').toString()\r\n !== (transforms.origin || 'center').toString()\r\n ) {\r\n origin = getOrigin(newTransforms, element)\r\n }\r\n\r\n // overwrite the old transformations with the new ones\r\n transforms = { ...newTransforms, origin }\r\n }\r\n\r\n this.queue(setup, run, retarget, true)\r\n this._isDeclarative && this._rememberMorpher('transform', morpher)\r\n return this\r\n },\r\n\r\n // Animatable x-axis\r\n x (x, relative) {\r\n return this._queueNumber('x', x)\r\n },\r\n\r\n // Animatable y-axis\r\n y (y) {\r\n return this._queueNumber('y', y)\r\n },\r\n\r\n dx (x = 0) {\r\n return this._queueNumberDelta('x', x)\r\n },\r\n\r\n dy (y = 0) {\r\n return this._queueNumberDelta('y', y)\r\n },\r\n\r\n dmove (x, y) {\r\n return this.dx(x).dy(y)\r\n },\r\n\r\n _queueNumberDelta (method, to) {\r\n to = new SVGNumber(to)\r\n\r\n // Try to change the target if we have this method already registerd\r\n if (this._tryRetarget(method, to)) return this\r\n\r\n // Make a morpher and queue the animation\r\n const morpher = new Morphable(this._stepper).to(to)\r\n let from = null\r\n this.queue(function () {\r\n from = this.element()[method]()\r\n morpher.from(from)\r\n morpher.to(from + to)\r\n }, function (pos) {\r\n this.element()[method](morpher.at(pos))\r\n return morpher.done()\r\n }, function (newTo) {\r\n morpher.to(from + new SVGNumber(newTo))\r\n })\r\n\r\n // Register the morpher so that if it is changed again, we can retarget it\r\n this._rememberMorpher(method, morpher)\r\n return this\r\n },\r\n\r\n _queueObject (method, to) {\r\n // Try to change the target if we have this method already registerd\r\n if (this._tryRetarget(method, to)) return this\r\n\r\n // Make a morpher and queue the animation\r\n const morpher = new Morphable(this._stepper).to(to)\r\n this.queue(function () {\r\n morpher.from(this.element()[method]())\r\n }, function (pos) {\r\n this.element()[method](morpher.at(pos))\r\n return morpher.done()\r\n })\r\n\r\n // Register the morpher so that if it is changed again, we can retarget it\r\n this._rememberMorpher(method, morpher)\r\n return this\r\n },\r\n\r\n _queueNumber (method, value) {\r\n return this._queueObject(method, new SVGNumber(value))\r\n },\r\n\r\n // Animatable center x-axis\r\n cx (x) {\r\n return this._queueNumber('cx', x)\r\n },\r\n\r\n // Animatable center y-axis\r\n cy (y) {\r\n return this._queueNumber('cy', y)\r\n },\r\n\r\n // Add animatable move\r\n move (x, y) {\r\n return this.x(x).y(y)\r\n },\r\n\r\n // Add animatable center\r\n center (x, y) {\r\n return this.cx(x).cy(y)\r\n },\r\n\r\n // Add animatable size\r\n size (width, height) {\r\n // animate bbox based size for all other elements\r\n let box\r\n\r\n if (!width || !height) {\r\n box = this._element.bbox()\r\n }\r\n\r\n if (!width) {\r\n width = box.width / box.height * height\r\n }\r\n\r\n if (!height) {\r\n height = box.height / box.width * width\r\n }\r\n\r\n return this\r\n .width(width)\r\n .height(height)\r\n },\r\n\r\n // Add animatable width\r\n width (width) {\r\n return this._queueNumber('width', width)\r\n },\r\n\r\n // Add animatable height\r\n height (height) {\r\n return this._queueNumber('height', height)\r\n },\r\n\r\n // Add animatable plot\r\n plot (a, b, c, d) {\r\n // Lines can be plotted with 4 arguments\r\n if (arguments.length === 4) {\r\n return this.plot([ a, b, c, d ])\r\n }\r\n\r\n if (this._tryRetarget('plot', a)) return this\r\n\r\n const morpher = new Morphable(this._stepper)\r\n .type(this._element.MorphArray).to(a)\r\n\r\n this.queue(function () {\r\n morpher.from(this._element.array())\r\n }, function (pos) {\r\n this._element.plot(morpher.at(pos))\r\n return morpher.done()\r\n })\r\n\r\n this._rememberMorpher('plot', morpher)\r\n return this\r\n },\r\n\r\n // Add leading method\r\n leading (value) {\r\n return this._queueNumber('leading', value)\r\n },\r\n\r\n // Add animatable viewbox\r\n viewbox (x, y, width, height) {\r\n return this._queueObject('viewbox', new Box(x, y, width, height))\r\n },\r\n\r\n update (o) {\r\n if (typeof o !== 'object') {\r\n return this.update({\r\n offset: arguments[0],\r\n color: arguments[1],\r\n opacity: arguments[2]\r\n })\r\n }\r\n\r\n if (o.opacity != null) this.attr('stop-opacity', o.opacity)\r\n if (o.color != null) this.attr('stop-color', o.color)\r\n if (o.offset != null) this.attr('offset', o.offset)\r\n\r\n return this\r\n }\r\n})\r\n\r\nextend(Runner, { rx, ry, from, to })\r\nregister(Runner, 'Runner')\r\n","import {\r\n adopt,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { svg, svgjs, xlink, xmlns } from '../modules/core/namespaces.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\nimport Defs from './Defs.js'\r\nimport { globals } from '../utils/window.js'\r\n\r\nexport default class Svg extends Container {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('svg', node), attrs)\r\n this.namespace()\r\n }\r\n\r\n // Creates and returns defs element\r\n defs () {\r\n if (!this.isRoot()) return this.root().defs()\r\n\r\n return adopt(this.node.querySelector('defs'))\r\n || this.put(new Defs())\r\n }\r\n\r\n isRoot () {\r\n return !this.node.parentNode\r\n || (!(this.node.parentNode instanceof globals.window.SVGElement) && this.node.parentNode.nodeName !== '#document-fragment')\r\n }\r\n\r\n // Add namespaces\r\n namespace () {\r\n if (!this.isRoot()) return this.root().namespace()\r\n return this\r\n .attr({ xmlns: svg, version: '1.1' })\r\n .attr('xmlns:xlink', xlink, xmlns)\r\n .attr('xmlns:svgjs', svgjs, xmlns)\r\n }\r\n\r\n removeNamespace () {\r\n return this.attr({ xmlns: null, version: null })\r\n .attr('xmlns:xlink', null, xmlns)\r\n .attr('xmlns:svgjs', null, xmlns)\r\n }\r\n\r\n // Check if this is a root svg\r\n // If not, call root() from this element\r\n root () {\r\n if (this.isRoot()) return this\r\n return super.root()\r\n }\r\n\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create nested svg document\r\n nested: wrapWithAttrCheck(function () {\r\n return this.put(new Svg())\r\n })\r\n }\r\n})\r\n\r\nregister(Svg, 'Svg', true)\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\n\r\nexport default class Symbol extends Container {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('symbol', node), attrs)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n symbol: wrapWithAttrCheck(function () {\r\n return this.put(new Symbol())\r\n })\r\n }\r\n})\r\n\r\nregister(Symbol, 'Symbol')\r\n","import { globals } from '../../utils/window.js'\r\n\r\n// Create plain text node\r\nexport function plain (text) {\r\n // clear if build mode is disabled\r\n if (this._build === false) {\r\n this.clear()\r\n }\r\n\r\n // create text node\r\n this.node.appendChild(globals.document.createTextNode(text))\r\n\r\n return this\r\n}\r\n\r\n// Get length of text element\r\nexport function length () {\r\n return this.node.getComputedTextLength()\r\n}\r\n\r\n// Move over x-axis\r\n// Text is moved by its bounding box\r\n// text-anchor does NOT matter\r\nexport function x (x, box = this.bbox()) {\r\n if (x == null) {\r\n return box.x\r\n }\r\n\r\n return this.attr('x', this.attr('x') + x - box.x)\r\n}\r\n\r\n// Move over y-axis\r\nexport function y (y, box = this.bbox()) {\r\n if (y == null) {\r\n return box.y\r\n }\r\n\r\n return this.attr('y', this.attr('y') + y - box.y)\r\n}\r\n\r\nexport function move (x, y, box = this.bbox()) {\r\n return this.x(x, box).y(y, box)\r\n}\r\n\r\n// Move center over x-axis\r\nexport function cx (x, box = this.bbox()) {\r\n if (x == null) {\r\n return box.cx\r\n }\r\n\r\n return this.attr('x', this.attr('x') + x - box.cx)\r\n}\r\n\r\n// Move center over y-axis\r\nexport function cy (y, box = this.bbox()) {\r\n if (y == null) {\r\n return box.cy\r\n }\r\n\r\n return this.attr('y', this.attr('y') + y - box.cy)\r\n}\r\n\r\nexport function center (x, y, box = this.bbox()) {\r\n return this.cx(x, box).cy(y, box)\r\n}\r\n\r\nexport function ax (x) {\r\n return this.attr('x', x)\r\n}\r\n\r\nexport function ay (y) {\r\n return this.attr('y', y)\r\n}\r\n\r\nexport function amove (x, y) {\r\n return this.ax(x).ay(y)\r\n}\r\n\r\n// Enable / disable build mode\r\nexport function build (build) {\r\n this._build = !!build\r\n return this\r\n}\r\n","import {\r\n adopt,\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport Shape from './Shape.js'\r\nimport { globals } from '../utils/window.js'\r\nimport * as textable from '../modules/core/textable.js'\r\n\r\nexport default class Text extends Shape {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('text', node), attrs)\r\n\r\n this.dom.leading = new SVGNumber(1.3) // store leading value for rebuilding\r\n this._rebuild = true // enable automatic updating of dy values\r\n this._build = false // disable build mode for adding multiple lines\r\n }\r\n\r\n // Set / get leading\n leading (value) {\r\n // act as getter\r\n if (value == null) {\r\n return this.dom.leading\r\n }\r\n\r\n // act as setter\r\n this.dom.leading = new SVGNumber(value)\r\n\r\n return this.rebuild()\r\n }\n\n // Rebuild appearance type\n rebuild (rebuild) {\r\n // store new rebuild flag if given\r\n if (typeof rebuild === 'boolean') {\r\n this._rebuild = rebuild\r\n }\r\n\r\n // define position of all lines\r\n if (this._rebuild) {\r\n const self = this\r\n let blankLineOffset = 0\r\n const leading = this.dom.leading\r\n\r\n this.each(function (i) {\r\n const fontSize = globals.window.getComputedStyle(this.node)\r\n .getPropertyValue('font-size')\r\n\r\n const dy = leading * new SVGNumber(fontSize)\r\n\r\n if (this.dom.newLined) {\r\n this.attr('x', self.attr('x'))\r\n\r\n if (this.text() === '\\n') {\r\n blankLineOffset += dy\r\n } else {\r\n this.attr('dy', i ? dy + blankLineOffset : 0)\r\n blankLineOffset = 0\r\n }\r\n }\r\n })\r\n\r\n this.fire('rebuild')\r\n }\r\n\r\n return this\r\n }\n\n // overwrite method from parent to set data properly\n setData (o) {\r\n this.dom = o\r\n this.dom.leading = new SVGNumber(o.leading || 1.3)\r\n return this\r\n }\n\n // Set the text content\r\n text (text) {\r\n // act as getter\r\n if (text === undefined) {\r\n const children = this.node.childNodes\r\n let firstLine = 0\r\n text = ''\r\n\r\n for (let i = 0, len = children.length; i < len; ++i) {\r\n // skip textPaths - they are no lines\r\n if (children[i].nodeName === 'textPath') {\r\n if (i === 0) firstLine = 1\r\n continue\r\n }\r\n\r\n // add newline if its not the first child and newLined is set to true\r\n if (i !== firstLine && children[i].nodeType !== 3 && adopt(children[i]).dom.newLined === true) {\r\n text += '\\n'\r\n }\r\n\r\n // add content of this node\r\n text += children[i].textContent\r\n }\r\n\r\n return text\r\n }\r\n\r\n // remove existing content\r\n this.clear().build(true)\r\n\r\n if (typeof text === 'function') {\r\n // call block\r\n text.call(this, this)\r\n } else {\r\n // store text and make sure text is not blank\r\n text = (text + '').split('\\n')\r\n\r\n // build new lines\r\n for (let j = 0, jl = text.length; j < jl; j++) {\r\n this.newLine(text[j])\r\n }\r\n }\r\n\r\n // disable build mode and rebuild lines\r\n return this.build(false).rebuild()\r\n }\r\n\r\n}\r\n\r\nextend(Text, textable)\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create text element\r\n text: wrapWithAttrCheck(function (text = '') {\r\n return this.put(new Text()).text(text)\r\n }),\r\n\r\n // Create plain text element\r\n plain: wrapWithAttrCheck(function (text = '') {\r\n return this.put(new Text()).plain(text)\r\n })\r\n }\r\n})\r\n\r\nregister(Text, 'Text')\r\n","import {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { globals } from '../utils/window.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport Shape from './Shape.js'\r\nimport Text from './Text.js'\r\nimport * as textable from '../modules/core/textable.js'\r\n\r\nexport default class Tspan extends Shape {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('tspan', node), attrs)\r\n this._build = false // disable build mode for adding multiple lines\r\n }\r\n\r\n // Shortcut dx\n dx (dx) {\r\n return this.attr('dx', dx)\r\n }\n\n // Shortcut dy\n dy (dy) {\r\n return this.attr('dy', dy)\r\n }\n\n // Create new line\n newLine () {\r\n // mark new line\r\n this.dom.newLined = true\r\n\r\n // fetch parent\r\n const text = this.parent()\r\n\r\n // early return in case we are not in a text element\r\n if (!(text instanceof Text)) {\r\n return this\r\n }\r\n\r\n const i = text.index(this)\r\n\r\n const fontSize = globals.window.getComputedStyle(this.node)\r\n .getPropertyValue('font-size')\r\n const dy = text.dom.leading * new SVGNumber(fontSize)\r\n\r\n // apply new position\r\n return this.dy(i ? dy : 0).attr('x', text.x())\r\n }\n\n // Set text content\r\n text (text) {\r\n if (text == null) return this.node.textContent + (this.dom.newLined ? '\\n' : '')\r\n\r\n if (typeof text === 'function') {\r\n this.clear().build(true)\r\n text.call(this, this)\r\n this.build(false)\r\n } else {\r\n this.plain(text)\r\n }\r\n\r\n return this\r\n }\r\n\r\n}\r\n\r\nextend(Tspan, textable)\r\n\r\nregisterMethods({\r\n Tspan: {\r\n tspan: wrapWithAttrCheck(function (text = '') {\r\n const tspan = new Tspan()\r\n\r\n // clear if build mode is disabled\r\n if (!this._build) {\r\n this.clear()\r\n }\r\n\r\n // add new tspan\r\n return this.put(tspan).text(text)\r\n })\r\n },\r\n Text: {\r\n newLine: function (text = '') {\r\n return this.tspan(text).newLine()\r\n }\r\n }\r\n})\r\n\r\nregister(Tspan, 'Tspan')\r\n","import { cx, cy, height, width, x, y } from '../modules/core/circled.js'\r\nimport {\r\n extend,\r\n nodeOrNew,\r\n register,\r\n wrapWithAttrCheck\r\n} from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport Shape from './Shape.js'\r\n\r\nexport default class Circle extends Shape {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('circle', node), attrs)\r\n }\r\n\r\n radius (r) {\r\n return this.attr('r', r)\r\n }\r\n\r\n // Radius x value\r\n rx (rx) {\r\n return this.attr('r', rx)\r\n }\r\n\r\n // Alias radius x value\r\n ry (ry) {\r\n return this.rx(ry)\r\n }\r\n\r\n size (size) {\r\n return this.radius(new SVGNumber(size).divide(2))\r\n }\r\n}\r\n\r\nextend(Circle, { x, y, cx, cy, width, height })\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create circle element\r\n circle: wrapWithAttrCheck(function (size = 0) {\r\n return this.put(new Circle())\r\n .size(size)\r\n .move(0, 0)\r\n })\r\n }\r\n})\r\n\r\nregister(Circle, 'Circle')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\nimport baseFind from '../modules/core/selector.js'\r\n\r\nexport default class ClipPath extends Container {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('clipPath', node), attrs)\r\n }\r\n\r\n // Unclip all clipped elements and remove itself\r\n remove () {\r\n // unclip all targets\r\n this.targets().forEach(function (el) {\r\n el.unclip()\r\n })\r\n\r\n // remove clipPath from parent\r\n return super.remove()\r\n }\r\n\r\n targets () {\r\n return baseFind('svg [clip-path*=\"' + this.id() + '\"]')\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create clipping element\r\n clip: wrapWithAttrCheck(function () {\r\n return this.defs().put(new ClipPath())\r\n })\r\n },\r\n Element: {\r\n // Distribute clipPath to svg element\r\n clipper () {\r\n return this.reference('clip-path')\r\n },\r\n\r\n clipWith (element) {\r\n // use given clip or create a new one\r\n const clipper = element instanceof ClipPath\r\n ? element\r\n : this.parent().clip().add(element)\r\n\r\n // apply mask\r\n return this.attr('clip-path', 'url(\"#' + clipper.id() + '\")')\r\n },\r\n\r\n // Unclip element\r\n unclip () {\r\n return this.attr('clip-path', null)\r\n }\r\n }\r\n})\r\n\r\nregister(ClipPath, 'ClipPath')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Element from './Element.js'\r\n\r\nexport default class ForeignObject extends Element {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('foreignObject', node), attrs)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n foreignObject: wrapWithAttrCheck(function (width, height) {\r\n return this.put(new ForeignObject()).size(width, height)\r\n })\r\n }\r\n})\r\n\r\nregister(ForeignObject, 'ForeignObject')\r\n","import Matrix from '../../types/Matrix.js'\nimport Point from '../../types/Point.js'\nimport { proportionalSize } from '../../utils/utils.js'\n\nexport function dmove (dx, dy) {\n this.children().forEach((child, i) => {\n\n let bbox\n\n // We have to wrap this for elements that dont have a bbox\n // e.g. title and other descriptive elements\n try {\n // Get the childs bbox\n bbox = child.bbox()\n } catch (e) {\n return\n }\n\n // Get childs matrix\n const m = new Matrix(child)\n // Translate childs matrix by amount and\n // transform it back into parents space\n const matrix = m.translate(dx, dy).transform(m.inverse())\n // Calculate new x and y from old box\n const p = new Point(bbox.x, bbox.y).transform(matrix)\n // Move element\n child.move(p.x, p.y)\n })\n\n return this\n}\n\nexport function dx (dx) {\n return this.dmove(dx, 0)\n}\n\nexport function dy (dy) {\n return this.dmove(0, dy)\n}\n\nexport function height (height, box = this.bbox()) {\n if (height == null) return box.height\n return this.size(box.width, height, box)\n}\n\nexport function move (x = 0, y = 0, box = this.bbox()) {\n const dx = x - box.x\n const dy = y - box.y\n\n return this.dmove(dx, dy)\n}\n\nexport function size (width, height, box = this.bbox()) {\n const p = proportionalSize(this, width, height, box)\n const scaleX = p.width / box.width\n const scaleY = p.height / box.height\n\n this.children().forEach((child, i) => {\n const o = new Point(box).transform(new Matrix(child).inverse())\n child.scale(scaleX, scaleY, o.x, o.y)\n })\n\n return this\n}\n\nexport function width (width, box = this.bbox()) {\n if (width == null) return box.width\n return this.size(width, box.height, box)\n}\n\nexport function x (x, box = this.bbox()) {\n if (x == null) return box.x\n return this.move(x, box.y, box)\n}\n\nexport function y (y, box = this.bbox()) {\n if (y == null) return box.y\n return this.move(box.x, y, box)\n}\n","import { nodeOrNew, register, wrapWithAttrCheck, extend } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\nimport * as containerGeometry from '../modules/core/containerGeometry.js'\r\n\r\nexport default class G extends Container {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('g', node), attrs)\r\n }\r\n}\r\n\r\nextend(G, containerGeometry)\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a group element\r\n group: wrapWithAttrCheck(function () {\r\n return this.put(new G())\r\n })\r\n }\r\n})\r\n\r\nregister(G, 'G')\r\n","import { nodeOrNew, register, wrapWithAttrCheck, extend } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { xlink } from '../modules/core/namespaces.js'\r\nimport Container from './Container.js'\r\nimport * as containerGeometry from '../modules/core/containerGeometry.js'\r\n\r\nexport default class A extends Container {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('a', node), attrs)\r\n }\r\n\r\n // Link target attribute\r\n target (target) {\r\n return this.attr('target', target)\r\n }\r\n\r\n // Link url\r\n to (url) {\r\n return this.attr('href', url, xlink)\r\n }\r\n\r\n}\r\n\r\nextend(A, containerGeometry)\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a hyperlink element\r\n link: wrapWithAttrCheck(function (url) {\r\n return this.put(new A()).to(url)\r\n })\r\n },\r\n Element: {\r\n unlink () {\r\n const link = this.linker()\r\n\r\n if (!link) return this\r\n\r\n const parent = link.parent()\r\n\r\n if (!parent) {\r\n return this.remove()\r\n }\r\n\r\n const index = parent.index(link)\r\n parent.add(this, index)\r\n\r\n link.remove()\r\n return this\r\n },\r\n linkTo (url) {\r\n // reuse old link if possible\r\n let link = this.linker()\r\n\r\n if (!link) {\r\n link = new A()\r\n this.wrap(link)\r\n }\r\n\r\n if (typeof url === 'function') {\r\n url.call(link, link)\r\n } else {\r\n link.to(url)\r\n }\r\n\r\n return this\r\n },\r\n linker () {\r\n const link = this.parent()\r\n if (link && link.node.nodeName.toLowerCase() === 'a') {\r\n return link\r\n }\r\n\r\n return null\r\n }\r\n }\r\n})\r\n\r\nregister(A, 'A')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport Container from './Container.js'\r\nimport baseFind from '../modules/core/selector.js'\r\n\r\nexport default class Mask extends Container {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('mask', node), attrs)\r\n }\r\n\r\n // Unmask all masked elements and remove itself\r\n remove () {\r\n // unmask all targets\r\n this.targets().forEach(function (el) {\r\n el.unmask()\r\n })\r\n\r\n // remove mask from parent\r\n return super.remove()\r\n }\r\n\r\n targets () {\r\n return baseFind('svg [mask*=\"' + this.id() + '\"]')\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n mask: wrapWithAttrCheck(function () {\r\n return this.defs().put(new Mask())\r\n })\r\n },\r\n Element: {\r\n // Distribute mask to svg element\r\n masker () {\r\n return this.reference('mask')\r\n },\r\n\r\n maskWith (element) {\r\n // use given mask or create a new one\r\n const masker = element instanceof Mask\r\n ? element\r\n : this.parent().mask().add(element)\r\n\r\n // apply mask\r\n return this.attr('mask', 'url(\"#' + masker.id() + '\")')\r\n },\r\n\r\n // Unmask element\r\n unmask () {\r\n return this.attr('mask', null)\r\n }\r\n }\r\n})\r\n\r\nregister(Mask, 'Mask')\r\n","import { nodeOrNew, register } from '../utils/adopter.js'\r\nimport Element from './Element.js'\r\nimport SVGNumber from '../types/SVGNumber.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\n\r\nexport default class Stop extends Element {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('stop', node), attrs)\r\n }\r\n\r\n // add color stops\r\n update (o) {\r\n if (typeof o === 'number' || o instanceof SVGNumber) {\r\n o = {\r\n offset: arguments[0],\r\n color: arguments[1],\r\n opacity: arguments[2]\r\n }\r\n }\r\n\r\n // set attributes\r\n if (o.opacity != null) this.attr('stop-opacity', o.opacity)\r\n if (o.color != null) this.attr('stop-color', o.color)\r\n if (o.offset != null) this.attr('offset', new SVGNumber(o.offset))\r\n\r\n return this\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Gradient: {\r\n // Add a color stop\r\n stop: function (offset, color, opacity) {\r\n return this.put(new Stop()).update(offset, color, opacity)\r\n }\r\n }\r\n})\r\n\r\nregister(Stop, 'Stop')\r\n","import { nodeOrNew, register } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { unCamelCase } from '../utils/utils.js'\r\nimport Element from './Element.js'\r\n\r\nfunction cssRule (selector, rule) {\r\n if (!selector) return ''\r\n if (!rule) return selector\r\n\r\n let ret = selector + '{'\r\n\r\n for (const i in rule) {\r\n ret += unCamelCase(i) + ':' + rule[i] + ';'\r\n }\r\n\r\n ret += '}'\r\n\r\n return ret\r\n}\r\n\r\nexport default class Style extends Element {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('style', node), attrs)\r\n }\r\n\r\n addText (w = '') {\r\n this.node.textContent += w\r\n return this\r\n }\r\n\r\n font (name, src, params = {}) {\r\n return this.rule('@font-face', {\r\n fontFamily: name,\r\n src: src,\r\n ...params\r\n })\r\n }\r\n\r\n rule (selector, obj) {\r\n return this.addText(cssRule(selector, obj))\r\n }\r\n}\r\n\r\nregisterMethods('Dom', {\r\n style (selector, obj) {\r\n return this.put(new Style()).rule(selector, obj)\r\n },\r\n fontface (name, src, params) {\r\n return this.put(new Style()).font(name, src, params)\r\n }\r\n})\r\n\r\nregister(Style, 'Style')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { xlink } from '../modules/core/namespaces.js'\r\nimport Path from './Path.js'\r\nimport PathArray from '../types/PathArray.js'\r\nimport Text from './Text.js'\r\nimport baseFind from '../modules/core/selector.js'\r\n\r\nexport default class TextPath extends Text {\r\n // Initialize node\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('textPath', node), attrs)\r\n }\r\n\r\n // return the array of the path track element\r\n array () {\r\n const track = this.track()\r\n\r\n return track ? track.array() : null\r\n }\r\n\r\n // Plot path if any\r\n plot (d) {\r\n const track = this.track()\r\n let pathArray = null\r\n\r\n if (track) {\r\n pathArray = track.plot(d)\r\n }\r\n\r\n return (d == null) ? pathArray : this\r\n }\r\n\r\n // Get the path element\r\n track () {\r\n return this.reference('href')\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n textPath: wrapWithAttrCheck(function (text, path) {\r\n // Convert text to instance if needed\r\n if (!(text instanceof Text)) {\r\n text = this.text(text)\r\n }\r\n\r\n return text.path(path)\r\n })\r\n },\r\n Text: {\r\n // Create path for text to run on\r\n path: wrapWithAttrCheck(function (track, importNodes = true) {\r\n const textPath = new TextPath()\r\n\r\n // if track is a path, reuse it\r\n if (!(track instanceof Path)) {\r\n // create path element\r\n track = this.defs().path(track)\r\n }\r\n\r\n // link textPath to path and add content\r\n textPath.attr('href', '#' + track, xlink)\r\n\r\n // Transplant all nodes from text to textPath\r\n let node\r\n if (importNodes) {\r\n while ((node = this.node.firstChild)) {\r\n textPath.node.appendChild(node)\r\n }\r\n }\r\n\r\n // add textPath element as child node and return textPath\r\n return this.put(textPath)\r\n }),\r\n\r\n // Get the textPath children\r\n textPath () {\r\n return this.findOne('textPath')\r\n }\r\n },\r\n Path: {\r\n // creates a textPath from this path\r\n text: wrapWithAttrCheck(function (text) {\r\n // Convert text to instance if needed\r\n if (!(text instanceof Text)) {\r\n text = new Text().addTo(this.parent()).text(text)\r\n }\r\n\r\n // Create textPath from text and path and return\r\n return text.path(this)\r\n }),\r\n\r\n targets () {\r\n return baseFind('svg textPath').filter((node) => {\r\n return (node.attr('href') || '').includes(this.id())\r\n })\r\n\r\n // Does not work in IE11. Use when IE support is dropped\r\n // return baseFind('svg textPath[*|href*=\"' + this.id() + '\"]')\r\n }\r\n }\r\n})\r\n\r\nTextPath.prototype.MorphArray = PathArray\r\nregister(TextPath, 'TextPath')\r\n","import { nodeOrNew, register, wrapWithAttrCheck } from '../utils/adopter.js'\r\nimport { registerMethods } from '../utils/methods.js'\r\nimport { xlink } from '../modules/core/namespaces.js'\r\nimport Shape from './Shape.js'\r\n\r\nexport default class Use extends Shape {\r\n constructor (node, attrs = node) {\r\n super(nodeOrNew('use', node), attrs)\r\n }\r\n\r\n // Use element as a reference\r\n use (element, file) {\r\n // Set lined element\r\n return this.attr('href', (file || '') + '#' + element, xlink)\r\n }\r\n}\r\n\r\nregisterMethods({\r\n Container: {\r\n // Create a use element\r\n use: wrapWithAttrCheck(function (element, file) {\r\n return this.put(new Use()).use(element, file)\r\n })\r\n }\r\n})\r\n\r\nregister(Use, 'Use')\r\n","/* Optional Modules */\r\nimport './modules/optional/arrange.js'\r\nimport './modules/optional/class.js'\r\nimport './modules/optional/css.js'\r\nimport './modules/optional/data.js'\r\nimport './modules/optional/memory.js'\r\nimport './modules/optional/sugar.js'\r\nimport './modules/optional/transform.js'\r\n\r\nimport { extend, makeInstance } from './utils/adopter.js'\r\nimport { getMethodNames, getMethodsFor } from './utils/methods.js'\r\nimport Box from './types/Box.js'\r\nimport Color from './types/Color.js'\r\nimport Container from './elements/Container.js'\r\nimport Defs from './elements/Defs.js'\r\nimport Dom from './elements/Dom.js'\r\nimport Element from './elements/Element.js'\r\nimport Ellipse from './elements/Ellipse.js'\r\nimport EventTarget from './types/EventTarget.js'\r\nimport Fragment from './elements/Fragment.js'\r\nimport Gradient from './elements/Gradient.js'\r\nimport Image from './elements/Image.js'\r\nimport Line from './elements/Line.js'\r\nimport List from './types/List.js'\r\nimport Marker from './elements/Marker.js'\r\nimport Matrix from './types/Matrix.js'\r\nimport Morphable, {\r\n NonMorphable,\r\n ObjectBag,\r\n TransformBag,\r\n makeMorphable,\r\n registerMorphableType\r\n} from './animation/Morphable.js'\r\nimport Path from './elements/Path.js'\r\nimport PathArray from './types/PathArray.js'\r\nimport Pattern from './elements/Pattern.js'\r\nimport PointArray from './types/PointArray.js'\r\nimport Polygon from './elements/Polygon.js'\r\nimport Polyline from './elements/Polyline.js'\r\nimport Rect from './elements/Rect.js'\r\nimport Runner from './animation/Runner.js'\r\nimport SVGArray from './types/SVGArray.js'\r\nimport SVGNumber from './types/SVGNumber.js'\r\nimport Shape from './elements/Shape.js'\r\nimport Svg from './elements/Svg.js'\r\nimport Symbol from './elements/Symbol.js'\r\nimport Text from './elements/Text.js'\r\nimport Tspan from './elements/Tspan.js'\r\nimport * as defaults from './modules/core/defaults.js'\r\nimport * as utils from './utils/utils.js'\r\nimport * as namespaces from './modules/core/namespaces.js'\r\nimport * as regex from './modules/core/regex.js'\r\n\r\nexport {\r\n Morphable,\r\n registerMorphableType,\r\n makeMorphable,\r\n TransformBag,\r\n ObjectBag,\r\n NonMorphable\r\n}\r\n\r\nexport { defaults, utils, namespaces, regex }\r\nexport const SVG = makeInstance\r\nexport { default as parser } from './modules/core/parser.js'\r\nexport { default as find } from './modules/core/selector.js'\r\nexport * from './modules/core/event.js'\r\nexport * from './utils/adopter.js'\r\nexport {\r\n getWindow,\r\n registerWindow,\r\n restoreWindow,\r\n saveWindow,\r\n withWindow\r\n} from './utils/window.js'\r\n\r\n/* Animation Modules */\r\nexport { default as Animator } from './animation/Animator.js'\r\nexport { Controller, Ease, PID, Spring, easing } from './animation/Controller.js'\r\nexport { default as Queue } from './animation/Queue.js'\r\nexport { default as Runner } from './animation/Runner.js'\r\nexport { default as Timeline } from './animation/Timeline.js'\r\n\r\n/* Types */\r\nexport { default as Array } from './types/SVGArray.js'\r\nexport { default as Box } from './types/Box.js'\r\nexport { default as Color } from './types/Color.js'\r\nexport { default as EventTarget } from './types/EventTarget.js'\r\nexport { default as Matrix } from './types/Matrix.js'\r\nexport { default as Number } from './types/SVGNumber.js'\r\nexport { default as PathArray } from './types/PathArray.js'\r\nexport { default as Point } from './types/Point.js'\r\nexport { default as PointArray } from './types/PointArray.js'\r\nexport { default as List } from './types/List.js'\r\n\r\n/* Elements */\r\nexport { default as Circle } from './elements/Circle.js'\r\nexport { default as ClipPath } from './elements/ClipPath.js'\r\nexport { default as Container } from './elements/Container.js'\r\nexport { default as Defs } from './elements/Defs.js'\r\nexport { default as Dom } from './elements/Dom.js'\r\nexport { default as Element } from './elements/Element.js'\r\nexport { default as Ellipse } from './elements/Ellipse.js'\r\nexport { default as ForeignObject } from './elements/ForeignObject.js'\r\nexport { default as Fragment } from './elements/Fragment.js'\r\nexport { default as Gradient } from './elements/Gradient.js'\r\nexport { default as G } from './elements/G.js'\r\nexport { default as A } from './elements/A.js'\r\nexport { default as Image } from './elements/Image.js'\r\nexport { default as Line } from './elements/Line.js'\r\nexport { default as Marker } from './elements/Marker.js'\r\nexport { default as Mask } from './elements/Mask.js'\r\nexport { default as Path } from './elements/Path.js'\r\nexport { default as Pattern } from './elements/Pattern.js'\r\nexport { default as Polygon } from './elements/Polygon.js'\r\nexport { default as Polyline } from './elements/Polyline.js'\r\nexport { default as Rect } from './elements/Rect.js'\r\nexport { default as Shape } from './elements/Shape.js'\r\nexport { default as Stop } from './elements/Stop.js'\r\nexport { default as Style } from './elements/Style.js'\r\nexport { default as Svg } from './elements/Svg.js'\r\nexport { default as Symbol } from './elements/Symbol.js'\r\nexport { default as Text } from './elements/Text.js'\r\nexport { default as TextPath } from './elements/TextPath.js'\r\nexport { default as Tspan } from './elements/Tspan.js'\r\nexport { default as Use } from './elements/Use.js'\r\n\r\nextend([\r\n Svg,\r\n Symbol,\r\n Image,\r\n Pattern,\r\n Marker\r\n], getMethodsFor('viewbox'))\r\n\r\nextend([\r\n Line,\r\n Polyline,\r\n Polygon,\r\n Path\r\n], getMethodsFor('marker'))\r\n\r\nextend(Text, getMethodsFor('Text'))\r\nextend(Path, getMethodsFor('Path'))\r\n\r\nextend(Defs, getMethodsFor('Defs'))\r\n\r\nextend([\r\n Text,\r\n Tspan\r\n], getMethodsFor('Tspan'))\r\n\r\nextend([\r\n Rect,\r\n Ellipse,\r\n Gradient,\r\n Runner\r\n], getMethodsFor('radius'))\r\n\r\nextend(EventTarget, getMethodsFor('EventTarget'))\r\nextend(Dom, getMethodsFor('Dom'))\r\nextend(Element, getMethodsFor('Element'))\r\nextend(Shape, getMethodsFor('Shape'))\r\nextend([ Container, Fragment ], getMethodsFor('Container'))\r\nextend(Gradient, getMethodsFor('Gradient'))\r\n\r\nextend(Runner, getMethodsFor('Runner'))\r\n\r\nList.extend(getMethodNames())\r\n\r\nregisterMorphableType([\r\n SVGNumber,\r\n Color,\r\n Box,\r\n Matrix,\r\n SVGArray,\r\n PointArray,\r\n PathArray\r\n])\r\n\r\nmakeMorphable()\r\n","import { Box, Element, G, extend, off, on } from '@svgdotjs/svg.js'\n\r\nconst getCoordsFromEvent = (ev) => {\r\n if (ev.changedTouches) {\r\n ev = ev.changedTouches[0]\r\n }\r\n return { x: ev.clientX, y: ev.clientY }\r\n}\r\n\r\n// Creates handler, saves it\r\nclass DragHandler {\r\n constructor (el) {\r\n el.remember('_draggable', this)\r\n this.el = el\r\n\r\n this.drag = this.drag.bind(this)\r\n this.startDrag = this.startDrag.bind(this)\r\n this.endDrag = this.endDrag.bind(this)\r\n }\r\n\r\n // Enables or disabled drag based on input\r\n init (enabled) {\r\n if (enabled) {\r\n this.el.on('mousedown.drag', this.startDrag)\r\n this.el.on('touchstart.drag', this.startDrag)\r\n } else {\r\n this.el.off('mousedown.drag')\r\n this.el.off('touchstart.drag')\r\n }\r\n }\r\n\r\n // Start dragging\r\n startDrag (ev) {\n const isMouse = !ev.type.indexOf('mouse')\n\n // Check for left button\r\n if (isMouse && (ev.which || ev.buttons) !== 1) {\r\n return\r\n }\r\n\r\n // Fire beforedrag event\r\n if (this.el.dispatch('beforedrag', { event: ev, handler: this }).defaultPrevented) {\r\n return\r\n }\r\n\r\n // Prevent browser drag behavior as soon as possible\r\n ev.preventDefault()\r\n\r\n // Prevent propagation to a parent that might also have dragging enabled\r\n ev.stopPropagation()\r\n\r\n // Make sure that start events are unbound so that one element\r\n // is only dragged by one input only\r\n this.init(false)\r\n\r\n this.box = this.el.bbox()\r\n this.lastClick = this.el.point(getCoordsFromEvent(ev))\r\n\r\n // We consider the drag done, when a touch is canceled, too\r\n const eventMove = (isMouse ? 'mousemove' : 'touchmove') + '.drag'\r\n const eventEnd = (isMouse ? 'mouseup' : 'touchcancel.drag touchend') + '.drag'\r\n\r\n // Bind drag and end events to window\r\n on(window, eventMove, this.drag)\r\n on(window, eventEnd, this.endDrag)\r\n\r\n // Fire dragstart event\r\n this.el.fire('dragstart', { event: ev, handler: this, box: this.box })\r\n }\r\n\r\n // While dragging\r\n drag (ev) {\r\n\r\n const { box, lastClick } = this\r\n\r\n const currentClick = this.el.point(getCoordsFromEvent(ev))\r\n const x = box.x + (currentClick.x - lastClick.x)\r\n const y = box.y + (currentClick.y - lastClick.y)\r\n const newBox = new Box(x, y, box.w, box.h)\r\n\r\n if (this.el.dispatch('dragmove', {\r\n event: ev,\r\n handler: this,\r\n box: newBox\r\n }).defaultPrevented) return\r\n\r\n this.move(x, y)\r\n return newBox\r\n }\r\n\r\n move (x, y) {\r\n // Svg elements bbox depends on their content even though they have\r\n // x, y, width and height - strange!\r\n // Thats why we handle them the same as groups\r\n if (this.el.type === 'svg') {\r\n G.prototype.move.call(this.el, x, y)\r\n } else {\r\n this.el.move(x, y)\r\n }\r\n }\r\n\r\n endDrag (ev) {\n // final drag\r\n const box = this.drag(ev)\r\n\r\n // fire dragend event\r\n this.el.fire('dragend', { event: ev, handler: this, box })\r\n\r\n // unbind events\r\n off(window, 'mousemove.drag')\r\n off(window, 'touchmove.drag')\r\n off(window, 'mouseup.drag')\r\n off(window, 'touchend.drag')\n\n // Rebind initial Events\n this.init(true)\n }\r\n}\r\n\r\nextend(Element, {\r\n draggable (enable = true) {\r\n const dragHandler = this.remember('_draggable') || new DragHandler(this)\r\n dragHandler.init(enable)\r\n return this\r\n }\r\n})\r\n","import { useReducer, useRef, useDebugValue, useEffect, useLayoutEffect } from 'react';\n\nfunction createStore(createState) {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (nextState !== state) {\n const previousState = state;\n state = replace ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");\n let currentSlice = selector(state);\n function listenerToAdd() {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n listener(currentSlice = nextSlice, previousSlice);\n }\n }\n listeners.add(listenerToAdd);\n return () => listeners.delete(listenerToAdd);\n };\n const subscribe = (listener, selector, equalityFn) => {\n if (selector || equalityFn) {\n return subscribeWithSelector(listener, selector, equalityFn);\n }\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => listeners.clear();\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n}\n\nconst isSSR = typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\nconst useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\nfunction create(createState) {\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useStore = (selector = api.getState, equalityFn = Object.is) => {\n const [, forceUpdate] = useReducer((c) => c + 1, 0);\n const state = api.getState();\n const stateRef = useRef(state);\n const selectorRef = useRef(selector);\n const equalityFnRef = useRef(equalityFn);\n const erroredRef = useRef(false);\n const currentSliceRef = useRef();\n if (currentSliceRef.current === void 0) {\n currentSliceRef.current = selector(state);\n }\n let newStateSlice;\n let hasNewStateSlice = false;\n if (stateRef.current !== state || selectorRef.current !== selector || equalityFnRef.current !== equalityFn || erroredRef.current) {\n newStateSlice = selector(state);\n hasNewStateSlice = !equalityFn(currentSliceRef.current, newStateSlice);\n }\n useIsomorphicLayoutEffect(() => {\n if (hasNewStateSlice) {\n currentSliceRef.current = newStateSlice;\n }\n stateRef.current = state;\n selectorRef.current = selector;\n equalityFnRef.current = equalityFn;\n erroredRef.current = false;\n });\n const stateBeforeSubscriptionRef = useRef(state);\n useIsomorphicLayoutEffect(() => {\n const listener = () => {\n try {\n const nextState = api.getState();\n const nextStateSlice = selectorRef.current(nextState);\n if (!equalityFnRef.current(currentSliceRef.current, nextStateSlice)) {\n stateRef.current = nextState;\n currentSliceRef.current = nextStateSlice;\n forceUpdate();\n }\n } catch (error) {\n erroredRef.current = true;\n forceUpdate();\n }\n };\n const unsubscribe = api.subscribe(listener);\n if (api.getState() !== stateBeforeSubscriptionRef.current) {\n listener();\n }\n return unsubscribe;\n }, []);\n const sliceToReturn = hasNewStateSlice ? newStateSlice : currentSliceRef.current;\n useDebugValue(sliceToReturn);\n return sliceToReturn;\n };\n Object.assign(useStore, api);\n useStore[Symbol.iterator] = function() {\n console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");\n const items = [useStore, api];\n return {\n next() {\n const done = items.length <= 0;\n return { value: items.shift(), done };\n }\n };\n };\n return useStore;\n}\n\nexport { create as default };\n","import create from 'zustand';\r\n\r\nimport { FixedNumber } from '../utility';\r\n\r\nconst useStore = create((set, get) => ({\r\n\tactivePanel: 'measured',\r\n\tactiveDBorOctavePanel: 'measuredDB',\r\n\tinitialMeasurementDistance: 10,\r\n\tinitialSoundNoise: 100,\r\n\tinitialSourceSoundPower: 96.8,\r\n\tdistance: 30,\r\n\tinitalDistance: 30,\r\n\tgroundHeight: 80,\r\n\treceiverHeight: 3,\r\n\tfrequency: 500,\r\n\tsourceHeight: 2,\r\n\tview: { width: 1012, height: 435 },\r\n\tscenario: 'noBarriers',\r\n\tbarrier1: { height: 4, distance: 15 },\r\n\tbarrier2: { height: 4, distance: 22.5 },\r\n\tgrid: 'distance',\r\n\tshowCalculations: false,\r\n\tsetShowCalculations: (showCalculations) => set((state) => ({ showCalculations })),\r\n\tsetDistance: (distance) => set((state) => ({\r\n\t\tdistance,\r\n\t\tbarrier1: { ...state.barrier1, distance: distance * state.barrier1.distance / state.distance },\r\n\t\tbarrier2: { ...state.barrier2, distance: distance * state.barrier2.distance / state.distance }\r\n\t})),\r\n\tgetGroundY: () => get().view.height - get().groundHeight,\r\n\tgetfirstBarrierInitialPosition: () => ({\r\n\t\tx: get().getSoundSourcePosition().x,\r\n\t\ty: get().getGroundY(),\r\n\t}),\r\n\tgetSoundSourcePosition: () => ({\r\n\t\tx: get().view.width * 12.50 / 100, //126.5\r\n\t\ty: get().getGroundY(),\r\n\t}),\r\n\tgetReceiverPosition: () => ({\r\n\t\tx: get().view.width - get().view.width * 12.50 / 100, //885.5\r\n\t\ty: get().getGroundY(),\r\n\t}),\r\n\tgetSingleUnit: () => (get().getReceiverPosition().x - get().getSoundSourcePosition().x) * 0.1 / get().distance,\r\n\tgetUnitFromMeter: (m) => (get().getReceiverPosition().x - get().getSoundSourcePosition().x) * m / get().distance,\r\n\tsetSourceHeight: (sourceHeight) => set(() => ({ sourceHeight })),\r\n\tsetReceiverHeight: (receiverHeight) => set(() => ({ receiverHeight })),\r\n\tsetViewBox: (width, height) => set(() => ({ view: { width, height } })),\r\n\tsetBarrierXCoordinate: (barrierXCoordinate) => set(() => ({\r\n\t\tfirstBarrier: {\r\n\t\t\tx: barrierXCoordinate,\r\n\t\t}\r\n\t})),\r\n\tsetinitialMeasurementDistance: (initialMeasurementDistance) => set(() => ({ initialMeasurementDistance })),\r\n\tsetinitialSoundNoise: (initialSoundNoise) => set(() => ({ initialSoundNoise })),\r\n\tsetinitialSourceSoundPower: (initialSourceSoundPower) => set(() => ({ initialSourceSoundPower })),\r\n\tsetinitialFrequency: (frequency) => set(() => ({ frequency })),\r\n\tsetScenario: (scenario) => set(() => ({ scenario })),\r\n\tsetGrid: (grid) => set(() => ({ grid })),\r\n\tsetActivePanel: (activePanel) => set(() => ({ activePanel })),\r\n\tsetActiveDBorOctavePanel: (activeDBorOctavePanel) => set(() => ({ activeDBorOctavePanel })),\r\n\tsetBarrier1: (attrs) => set((oldState) => ({ barrier1: { ...oldState.barrier1, ...attrs } })),\r\n\tsetBarrier2: (attrs) => set((oldState) => ({ barrier2: { ...oldState.barrier2, ...attrs } })),\r\n\tsetCloseBarrier: (attrs) => set((oldState) => {\r\n\t\tconst key = Number(oldState.barrier1.distance) <= Number(oldState.barrier2.distance) ? 'barrier1' : 'barrier2';\r\n\t\treturn {\r\n\t\t\t[key]: { ...oldState[key], ...attrs }\r\n\t\t};\r\n\t}),\r\n\tsetFarBarrier: (attrs) => set((oldState) => {\r\n\t\tconst key = Number(oldState.barrier1.distance) > Number(oldState.barrier2.distance) ? 'barrier1' : 'barrier2';\r\n\t\treturn {\r\n\t\t\t[key]: { ...oldState[key], ...attrs }\r\n\t\t};\r\n\t}),\r\n\tsetBarriers: (closeBarrier, farBarrier) => set((oldState) => {\r\n\t\tconst [closeBarrierKey, farBarrierKey] = Number(oldState.barrier1.distance) <= Number(oldState.barrier2.distance) ? ['barrier1', 'barrier2'] : ['barrier2', 'barrier1'];\r\n\t\treturn {\r\n\t\t\t[closeBarrierKey]: {\r\n\t\t\t\t...oldState[closeBarrierKey],\r\n\t\t\t\t...closeBarrier,\r\n\t\t\t},\r\n\t\t\t[farBarrierKey]: {\r\n\t\t\t\t...oldState[farBarrierKey],\r\n\t\t\t\t...farBarrier,\r\n\t\t\t}\r\n\t\t};\r\n\t}),\r\n\tsetGroundDistances: ({ sourceToBarrier, barrierToBarrier, barrierToReceiver }) => set((oldState) => {\r\n\t\tconst [closeBarrierKey, farBarrierKey] = Number(oldState.barrier1.distance) <= Number(oldState.barrier2.distance) ? ['barrier1', 'barrier2'] : ['barrier2', 'barrier1'];\r\n\t\tif (sourceToBarrier) {\r\n\t\t\tconst offset = oldState[closeBarrierKey].distance - sourceToBarrier;\r\n\t\t\treturn {\r\n\t\t\t\t[closeBarrierKey]: {\r\n\t\t\t\t\t...oldState[closeBarrierKey],\r\n\t\t\t\t\tdistance: sourceToBarrier\r\n\t\t\t\t},\r\n\t\t\t\t[farBarrierKey]: {\r\n\t\t\t\t\t...oldState[farBarrierKey],\r\n\t\t\t\t\tdistance: FixedNumber(oldState[farBarrierKey].distance - offset),\r\n\t\t\t\t},\r\n\t\t\t\tdistance: FixedNumber(oldState.distance - offset),\r\n\t\t\t};\r\n\t\t}\r\n\t\tif (barrierToBarrier) {\r\n\t\t\tconst offset = oldState[farBarrierKey].distance - oldState[closeBarrierKey].distance - barrierToBarrier;\r\n\t\t\treturn {\r\n\t\t\t\t[farBarrierKey]: {\r\n\t\t\t\t\t...oldState[farBarrierKey],\r\n\t\t\t\t\tdistance: FixedNumber(oldState[farBarrierKey].distance - offset),\r\n\t\t\t\t},\r\n\t\t\t\tdistance: FixedNumber(oldState.distance - offset),\r\n\t\t\t};\r\n\t\t}\r\n\t\tif (barrierToReceiver) {\r\n\t\t\tconst newState = {};\r\n\r\n\t\t\tif (oldState.scenario === 'singleBarrier') {\r\n\t\t\t\tconst offset = oldState.distance - oldState['barrier1'].distance - barrierToReceiver;\r\n\t\t\t\tnewState.distance = FixedNumber(oldState.distance - offset);\r\n\t\t\t\tnewState.barrier2 = {\r\n\t\t\t\t\t...oldState.barrier2,\r\n\t\t\t\t\tdistance: FixedNumber(oldState.barrier1.distance + (newState.distance - oldState.barrier1.distance) / 2),\r\n\t\t\t\t};\r\n\t\t\t} else {\r\n\t\t\t\tconst offset = oldState.distance - oldState[farBarrierKey].distance - barrierToReceiver;\r\n\t\t\t\tnewState.distance = FixedNumber(oldState.distance - offset);\r\n\t\t\t}\r\n\r\n\t\t\treturn newState;\r\n\t\t}\r\n\t}),\r\n}));\r\n\r\nexport default useStore;\r\n\r\n// getUnitFromMeter: Returns a representation in meters in the svg view size\r\n","var _desc, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgToolTipIcon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"Group\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _desc || (_desc = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Sketch.\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Page-2\",\n stroke: \"none\",\n strokeWidth: 1,\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Artboard1\",\n transform: \"translate(-91.000000, -1518.000000)\",\n stroke: \"#FF6400\",\n strokeWidth: 1.5\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\",\n transform: \"translate(91.000000, 1518.000000)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9,9 C9.00029133,7.47442919 10.1454538,6.19201013 11.6612688,6.01975736 C13.1770839,5.8475046 14.5807925,6.84027747 14.9233788,8.32688466 C15.2659652,9.81349185 14.438322,11.3204764 13,11.829 C12.4004081,12.0409876 11.9996666,12.6080369 12,13.244 L12,14.25\",\n id: \"Path\",\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12,17.25 C11.7928932,17.25 11.625,17.4178932 11.625,17.625 C11.625,17.8321068 11.7928932,18 12,18 C12.2071068,18 12.375,17.8321068 12.375,17.625 C12.375,17.4178932 12.2071068,17.25 12,17.25 L12,17.25\",\n id: \"Path\",\n strokeLinecap: \"round\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Oval\",\n cx: 12,\n cy: 12,\n r: 11.25\n }))))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgToolTipIcon);\nexport default __webpack_public_path__ + \"static/media/toolTipIcon.cf52af8a64a89ab9df08efc208c66e7e.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\r\nimport toolTipIcon from './imgs/toolTipIcon.svg';\r\n\r\n\r\nconst ToolTipIcon = ({ toolTipMessage, style, isLeft }) => {\r\n\tconst src = \"https://uploads-ssl.webflow.com/6191b5ffff40d96697340a9c/61fba78e4f262440d8356fa2_toolTipIcon.c4ea9e3705ab2707a5e5de63d916c7e3.svg\";\r\n\treturn (\r\n\t\t
\r\n\t\t\t{toolTipMessage}\r\n\t\t\t\"toolTip\"\r\n\t\t
\r\n\t)\r\n}\r\n\r\nexport default ToolTipIcon;","import React, { useState } from 'react';\r\nimport useStore from '../store/store';\r\nimport ToolTipIcon from './ToolTipIcon'\r\nimport { Row, Col } from 'react-grid-system';\r\nconst Controllers = (e) => {\r\n\r\n\r\n\t// Note: \r\n\t// This controls the store in order to produce 4 different states:\r\n\t//\r\n\t// measuredDB\r\n\t// measuredOCTAVES\r\n\t// soundPowerOCTAVES\r\n\t// soundPowerDB\r\n\r\n\t// These represent the 4 different panels underneath the tool.\r\n\r\n\tconst setScenario = useStore((state) => state.setScenario);\r\n\tconst scenario = useStore((state) => state.scenario);\r\n\tconst grid = useStore((state) => state.grid);\r\n\tconst setGrid = useStore((state) => state.setGrid);\r\n\tconst [selectedOption, setSelectedOption] = useState('DB');\r\n\t// display either measured or sound power panel\r\n\tconst currentActivePanel = useStore((state) => state.activePanel);\r\n\tconst setActivePanel = useStore((state) => state.setActivePanel);\r\n\t// Display either dB(A) Only or Octave Bands\r\n\tconst currentactiveDBorOctavePanel = useStore((state) => state.activeDBorOctavePanel);\r\n\t// internal state for DBorOctave dropdown\r\n\tconst setActiveDBorOctavePanel = useStore((state) => state.setActiveDBorOctavePanel);\r\n\tconst activeDBorOctavePanel = useStore((state) => state.activeDBorOctavePanel);\r\n\r\n\r\n\tfunction onChange(e) {\r\n\t\tconst value = e.target.value;\r\n\t\tsetScenario(value);\r\n\t}\r\n\r\n\tfunction onGridChange(e) {\r\n\t\tconst value = e.target.value;\r\n\t\tsetGrid(value);\r\n\t}\r\n\r\n\tfunction updatePanel(value) {\r\n\t\tsetActivePanel(value)\r\n\r\n\t\t// Update bottom panels when clicking in top buttons as well - a bit hacky now but works\r\n\r\n\t\tif (value === 'measured') {\r\n\t\t\tconst currentPanel = value + currentactiveDBorOctavePanel.split(\"soundPower\").pop();\r\n\t\t\tsetActiveDBorOctavePanel(currentPanel);\r\n\t\t}\r\n\r\n\t\tif (value === 'soundPower') {\r\n\t\t\tconst currentPanel = value + currentactiveDBorOctavePanel.split(\"measured\").pop();\r\n\t\t\tsetActiveDBorOctavePanel(currentPanel);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tfunction updateDbOrOcatave(value) {\r\n\t\tconst computedResult = currentActivePanel + value;\r\n\t\tsetSelectedOption(value)\r\n\t\tsetActiveDBorOctavePanel(computedResult);\r\n\t}\r\n\r\n\tconst BarriersDropDown = () => {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n\tconst DisplayDropDown = () => {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n\tconst DBorOctaveDropDown = () => {\r\n\r\n\t\tconst selectedOption = ['soundPowerOCTAVES', 'measuredOCTAVES'].includes(activeDBorOctavePanel) ? 'OCTAVES' : 'DB';\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n\tconst NoiseDataButton = ({ title, setActivePanel, isActive, toolTip, style }) => {\r\n\t\treturn (\r\n\r\n\t\t\t\r\n\r\n\t\t)\r\n\t}\r\n\r\n\tconst NoiseData = () => {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t updatePanel('measured')}\r\n\t\t\t\t\t\tisActive={currentActivePanel === 'measured'}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t updatePanel('soundPower')}\r\n\t\t\t\t\t\tisActive={currentActivePanel === 'soundPower'}\r\n\t\t\t\t\t\tstyle={{ marginLeft: '10px' }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nexport { Controllers };","import { Container, Row, Col } from 'react-grid-system';\r\nimport { useScreenClass } from 'react-grid-system';\r\n\r\nconst Detail = ({\r\n sourceHeight,\r\n receiverHeight,\r\n PathDifference,\r\n receiverSPLNoBarrier,\r\n RecieverNoiseLevel,\r\n barrierAttenuation,\r\n distanceAttenuation,\r\n RecieverNoiseLevel2,\r\n barrierHeight,\r\n barrierXpos,\r\n BarrierToRecieverDistance,\r\n sourceSoundPower,\r\n frequency,\r\n measurementDistance,\r\n sourceNoisePower\r\n}) => {\r\n const screenClass = useScreenClass();\r\n\r\n return (\r\n
\r\n {console.log(+(Math.round(sourceHeight + \"e+1\") + \"e-1\"))}\r\n \r\n \r\n \r\n

\r\n Inputs\r\n

\r\n
\r\n {+(Math.round(sourceHeight + \"e+1\") + \"e-1\")}\r\n
\r\n
\r\n {+(Math.round(receiverHeight + \"e+1\") + \"e-1\")}\r\n
\r\n
\r\n {+(Math.round(barrierHeight + \"e+1\") + \"e-1\")}\r\n
\r\n
\r\n {+(Math.round(barrierXpos + \"e+1\") + \"e-1\")}\r\n
\r\n
\r\n {+(Math.round(BarrierToRecieverDistance + \"e+2\") + \"e-2\")}\r\n
\r\n
\r\n {+(Math.round(sourceSoundPower + \"e+1\") + \"e-1\")}\r\n
\r\n
\r\n {frequency}\r\n
\r\n
\r\n {+(Math.round(measurementDistance + \"e+1\") + \"e-1\")}\r\n
\r\n
\r\n Source Noise Power (dBA){+(Math.round(sourceNoisePower + \"e+1\") + \"e-1\")}\r\n
\r\n \r\n \r\n

\r\n Outputs\r\n

\r\n
\r\n \r\n {+(Math.round(PathDifference + \"e+2\") + \"e-2\")}\r\n
\r\n
\r\n \r\n {+(Math.round(receiverSPLNoBarrier + \"e+1\") + \"e-1\")}\r\n
\r\n
\r\n \r\n {+(Math.round(barrierAttenuation + \"e+1\") + \"e-1\")}\r\n
\r\n
\r\n \r\n {+(Math.round(distanceAttenuation + \"e+1\") + \"e-1\")}\r\n
\r\n
\r\n \r\n {+(Math.round(RecieverNoiseLevel + \"e+1\") + \"e-1\")}\r\n
\r\n
\r\n \r\n {+(Math.round(RecieverNoiseLevel2 + \"e+1\") + \"e-1\")}\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\n\r\n\r\nexport default Detail\r\n","import useStore from '../../store/store';\r\nimport { Container, Row, Col } from \"react-grid-system\";\r\n\r\nconst roundValue = (value) => {\r\n\treturn +(Math.round(value + \"e+1\") + \"e-1\");\r\n}\r\n\r\nconst SoundPowerDB = (\r\n\t{\r\n\t\tsetinitialSourceSoundPower,\r\n\t\tinitialSourceSoundPower,\r\n\t\tRecieverNoiseLevel,\r\n\t\treceiverSPLNoBarrier,\r\n\t}\r\n) => {\r\n\tconst barrierScenario = useStore((state) => state.scenario);\r\n\tif (barrierScenario === 'noBarriers') {\r\n\t\tRecieverNoiseLevel = '';\r\n\t}\r\n\telse {\r\n\t\tRecieverNoiseLevel = roundValue(RecieverNoiseLevel);\r\n\t}\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
Receiver noise level
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tNo barrier\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{roundValue(receiverSPLNoBarrier)}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tdB(A)\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tWith barrier\r\n\t\t\t\t\t\t\t
{RecieverNoiseLevel}
\r\n\t\t\t\t\t\t\tdB(A)\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default SoundPowerDB;","//import toolTipIcon from '../imgs/toolTipIcon.svg';\r\nimport useStore from '../../store/store';\r\n//import ToolTipIcon from '../ToolTipIcon';\r\nimport { Container, Row, Col } from 'react-grid-system'\r\nimport { useScreenClass } from 'react-grid-system';\r\n\r\nconst roundValue = (value) => {\r\n\treturn +(Math.round(value + \"e+1\") + \"e-1\");\r\n}\r\n\r\nconst getBandText = (value) => {\r\n\tlet myValue = value.split('b');\r\n\tmyValue = myValue.toString().replace(\"sn\", \"\").replace(\",\", \"\");\r\n\treturn myValue;\r\n}\r\n\r\nconst SoundPowerOctaves = (\r\n\t{\r\n\t\tchangeBandNoiseValue,\r\n\t\ttotalSourceNoiseA,\r\n\t\treceiverNoiseA,\r\n\t\ttotalRecieverNoiseA,\r\n\t\tbandSetNoise = { bandSetNoise },\r\n\t\tmeasuredNoiseNoBarrierSoundPower,\r\n\t\tmeasuredNoiseNoBarrierSoundPowerTotal,\r\n\t\tbarrierAttenuationList,\r\n\t\treceiverNoiseLin,\r\n\t\treceiverSPLList,\r\n\t\ttotalSourceNoiseDba\r\n\t}\r\n) => {\r\n\tconst barrierScenario = useStore((state) => state.scenario);\r\n\tconst screenClass = useScreenClass();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t['sm', 'xs'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tSound Power (Linear)\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Object.keys(bandSetNoise).map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex <= 2 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(bandSetNoise).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Object.keys(bandSetNoise).map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 2 && index <= 5 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(bandSetNoise).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Object.keys(bandSetNoise).map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 5 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(bandSetNoise).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t['md', 'lg', 'xl', 'xxl'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
Sound Power
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Object.keys(bandSetNoise).map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(bandSetNoise).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{/* barrierAttenuationList\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
Barrier Attenuation
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Object.keys(barrierAttenuationList).map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
*/}\r\n\t\t\t\t\t\t\t\t{/* receiverSPLList per band.\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
Reciever SPL Noise Lin
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Object.keys(receiverSPLList).map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
*/}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{/* end first line */}\r\n\r\n\t\t\t\t\t{/* start second line */}\r\n\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t['sm', 'xs'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
No Barriers A weighted
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverSPLList.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex <= 2 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverSPLList).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(measuredNoiseNoBarrierSoundPowerTotal)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverSPLList.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 2 && index <= 5 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverSPLList).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(measuredNoiseNoBarrierSoundPowerTotal)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverSPLList.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 5 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverSPLList).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(measuredNoiseNoBarrierSoundPowerTotal)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t['md', 'lg', 'xl', 'xxl'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
No Barriers A weighted
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverSPLList.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverSPLList).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(measuredNoiseNoBarrierSoundPowerTotal)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{/* end second line */}\r\n\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t['sm', 'xs'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
Barriers A weighted
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverNoiseA.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex <= 2 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario !== 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario === 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverNoiseA.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 2 && index <= 5 && (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario !== 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario === 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverNoiseA.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 5 && (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario !== 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverNoiseA).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(totalRecieverNoiseA)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario === 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverNoiseA).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t['md', 'lg', 'xl', 'xxl'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
Barriers A weighted
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverNoiseA.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario !== 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverNoiseA).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(totalRecieverNoiseA)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario === 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverNoiseA).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{/* end third line */}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default SoundPowerOctaves;","import { Container, Row, Col } from 'react-grid-system';\r\n//import RightPanel from './RightPanel';\r\nimport useStore from '../../store/store';\r\nimport { useScreenClass } from 'react-grid-system';\r\nconst roundValue = (value) => {\r\n\treturn +(Math.round(value + \"e+1\") + \"e-1\");\r\n}\r\n\r\nconst MeasuredDbPanel = ({\r\n\tinitialMeasurementDistance,\r\n\tRecieverNoiseLevel2,\r\n\tsetinitialMeasurementDistance,\r\n\tsetinitialSoundNoise,\r\n\tinitialSoundNoise,\r\n\treceiverSPLNoBarrier,\r\n}) => {\r\n\r\n\tconst barrierScenario = useStore((state) => state.scenario); // this is the drop down.\r\n\tconsole.log(barrierScenario);\r\n\tif (barrierScenario === 'noBarriers') {\r\n\t\tRecieverNoiseLevel2 = '';\r\n\t}\r\n\telse {\r\n\t\tRecieverNoiseLevel2 = roundValue(RecieverNoiseLevel2);\r\n\t}\r\n\tconst screenClass = useScreenClass();\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tMeasurement distance\r\n\t\t\t\t\t\t { setinitialMeasurementDistance(e.target.value) }} type=\"text\" className='inner-panel-boxed-input ' name=\"measurementDistance\" value={initialMeasurementDistance} />\r\n\t\t\t\t\t\tm\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tMeasured sound pressure\r\n\t\t\t\t\t\t { setinitialSoundNoise(e.target.value) }} type=\"text\" className='inner-panel-boxed-input' name=\"soundNoise\" value={initialSoundNoise} />\r\n\t\t\t\t\t\tdB(A)\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
Receiver noise level
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\tNo barrier\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{roundValue(receiverSPLNoBarrier)}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\tdB(A)\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\tWith Barrier\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{RecieverNoiseLevel2}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\tdB(A)\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t)\r\n}\r\n\r\nexport default MeasuredDbPanel;","import useStore from '../../store/store';\r\nimport { Container, Row, Col } from 'react-grid-system'\r\nimport { useScreenClass } from 'react-grid-system';\r\nconst roundValue = (value) => {\r\n\treturn +(Math.round(value + \"e+1\") + \"e-1\");\r\n}\r\n\r\nconst OctaveMeasuredPanel = (\r\n\t{\r\n\t\tsetinitialMeasurementDistance,\r\n\t\tbandSets,\r\n\t\tchangeBandValue,\r\n\t\ttotalSourceNoise,\r\n\t\treceiverNoiseLin,\r\n\t\ttotalRecieverNoiceLin,\r\n\t\tmeasuredNoiseNoBarrierTotal,\r\n\t\tmeasuredNoiseNoBarrier,\r\n\t\ttotalSourceNoiseDba\r\n\t}\r\n) => {\r\n\r\n\tconst barrierScenario = useStore((state) => state.scenario);\r\n\t// responsive component based the screen width\r\n\tconst screenClass = useScreenClass();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
\r\n\t\t\t\t\r\n\r\n\t\t\t\t\t{/* top measurement distance */}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\tMeasurement distance\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{/* octaves panel responsive small*/}\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\t['sm', 'xs'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
Measured Sound Pressure (Linear)
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Object.keys(bandSets).map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex <= 2 && (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(bandSets).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Object.keys(bandSets).map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 2 && index <= 5 && (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(bandSets).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Object.keys(bandSets).map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 5 && (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(bandSets).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{/* octaves panel responsive big*/}\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t['md', 'lg', 'xl', 'xxl'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
Measured Sound Pressure (Linear)
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Object.keys(bandSets).map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(bandSets).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t{/* end first octaves line */}\r\n\t\t\t\t\t{/* barriers line */}\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t['sm', 'xs'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
No Barriers A weighted
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{measuredNoiseNoBarrier.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex <= 2 && (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(measuredNoiseNoBarrier).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(measuredNoiseNoBarrierTotal)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{measuredNoiseNoBarrier.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 2 && index <= 5 && (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(measuredNoiseNoBarrier).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(measuredNoiseNoBarrierTotal)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{measuredNoiseNoBarrier.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 5 && (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(measuredNoiseNoBarrier).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(measuredNoiseNoBarrierTotal)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{/* barriers responsive big */}\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t['md', 'lg', 'xl', 'xxl'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
No Barriers A weighted
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{measuredNoiseNoBarrier.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(measuredNoiseNoBarrier).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(measuredNoiseNoBarrierTotal)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{/* End no barriers line */}\r\n\t\t\t\t\t{/* Start With barriers */}\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t['sm', 'xs'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
Barriers A weighted
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverNoiseLin.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex <= 2 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario !== 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario === 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverNoiseLin).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverNoiseLin.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 2 && index <= 5 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario !== 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverNoiseLin).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(totalRecieverNoiceLin)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario === 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(measuredNoiseNoBarrier).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{receiverNoiseLin.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\tindex > 5 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario !== 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverNoiseLin).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(totalRecieverNoiceLin)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario === 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(measuredNoiseNoBarrier).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t['md', 'lg', 'xl', 'xxl'].includes(screenClass) && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
Barriers A weighted
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{receiverNoiseLin.map((item, index) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario !== 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(item)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(receiverNoiseLin).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{roundValue(totalRecieverNoiceLin)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbarrierScenario === 'noBarriers' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === Object.values(measuredNoiseNoBarrier).length - 1 && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\r\n\t)\r\n\r\n}\r\n\r\nexport default OctaveMeasuredPanel;","//import { Container, Row, Col } from 'react-grid-system';\r\n// import appStore from '../imgs/appStore.jpg';\r\n// import googlePlay from '../imgs/googlePlay.jpg';\r\n\r\nimport useStore from '../../store/store';\r\n\r\n\r\nconst appStore = \"https://uploads-ssl.webflow.com/6191b5ffff40d96697340a9c/6203cd029dacb4df12382855_appStore.5d56d653fce12c774526.png\";\r\nconst googlePlay = \"https://uploads-ssl.webflow.com/6191b5ffff40d96697340a9c/6203cd03198f01573f47060c_googlePlay.c043c58bcf6c970dc546.png\";\r\n\r\nconst appStoreLink = \"https://apps.apple.com/us/app/barrier-calculation-tool/id6444768183\";\r\nconst googlePlayLink = \"https://play.google.com/store/apps/details?id=maglabs.apps.mobile.soundPropagation\";\r\n\r\n\r\n\r\nconst RightPanel = ({ resetOctavesValues }) => {\r\n\t//const showCalculations = useStore((state) => state.showCalculations)\r\n\tconst setSourceHeight = useStore((state) => (state.setSourceHeight))\r\n\tconst setReceiverHeight = useStore((state) => (state.setReceiverHeight));\r\n\tconst setScenario = useStore((state) => (state.setScenario));\r\n\tconst setGrid = useStore((state) => (state.setGrid));\r\n\tconst setActivePanel = useStore((state) => (state.setActivePanel));\r\n\tconst setActiveDBorOctavePanel = useStore((state) => (state.setActiveDBorOctavePanel));\r\n\tconst setBarrier1 = useStore((state) => (state.setBarrier1));\r\n\tconst setBarrier2 = useStore((state) => (state.setBarrier2));\r\n\tconst setinitialMeasurementDistance = useStore((state) => (state.setinitialMeasurementDistance));\r\n\tconst setinitialSoundNoise = useStore((state) => (state.setinitialSoundNoise));\r\n\tconst setinitialSourceSoundPower = useStore((state) => (state.setinitialSourceSoundPower));\r\n\r\n\tfunction resetAllValues() {\r\n\t\tsetScenario('noBarriers')\r\n\t\tsetGrid('distance')\r\n\t\tsetBarrier1({ height: 4, distance: 15 })\r\n\t\tsetBarrier2({ height: 4, distance: 22.5 })\r\n\t\tsetActivePanel('measured')\r\n\t\tsetActiveDBorOctavePanel('measuredDB')\r\n\t\tsetSourceHeight(2)\r\n\t\tsetReceiverHeight(3)\r\n\t\tsetinitialMeasurementDistance(10);\r\n\t\tsetinitialSoundNoise(100);\r\n\t\tsetinitialSourceSoundPower(96.8)\r\n\t\tresetOctavesValues();\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
Options
\r\n\t\t\t\t\t\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tThe tool is now available as a mobile app.\r\n\t\t\t\t\t

\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\"toolTip\"\r\n\t\t\t\t\t\t\"toolTip\"\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n}\r\n\r\nexport default RightPanel;","import React, { useState } from 'react';\r\nimport useStore from '../store/store';\r\nimport SoundPowerDB from './panels/SoundPowerDB';\r\nimport SoundPowerOctaves from './panels/SoundPowerOctaves';\r\nimport MeasuredDbPanel from './panels/MeasureDbPanel';\r\nimport MeasuredOctaves from './panels/MeasuredOctaves'\r\nimport { Container, Row, Col } from 'react-grid-system';\r\nimport RightPanel from './panels/RightPanel';\r\nimport Detail from './Detail';\r\n\r\nconst Multiband = ({\r\n\tsourceHeight,\r\n\treceiverHeight,\r\n\tdistance,\r\n\tPathDifference,\r\n\tdistanceAttenuation,\r\n\tbarrierHeight,\r\n\tbarrierXpos,\r\n\tBarrierToRecieverDistance,\r\n\tsourceSoundPower,\r\n\tcalcsB2,\r\n\tfrequency,\r\n\tRecieverNoiseLevel2,\r\n\tRecieverNoiseLevel,\r\n\treceiverSPLNoBarrier\r\n}) => {\r\n\t/* A comment */\r\n\tconst [displaySingleFrequency, setDisplaySingleFrequency] = useState(true);\r\n\tconst setinitialMeasurementDistance = useStore((state) => state.setinitialMeasurementDistance);\r\n\tconst setinitialSoundNoise = useStore((state) => state.setinitialSoundNoise);\r\n\tconst setinitialSourceSoundPower = useStore((state) => state.setinitialSourceSoundPower);\r\n\tconst setinitialFrequency = useStore((state) => state.setinitialFrequency);\r\n\tconst initialMeasurementDistance = useStore((state) => state.initialMeasurementDistance);\r\n\tconst initialSoundNoise = useStore((state) => state.initialSoundNoise);\r\n\tconst initialSourceSoundPower = useStore((state) => state.initialSourceSoundPower);\r\n\tconst initialFrequency = useStore((state) => state.frequency);\r\n\tconst setScenario = useStore((state) => state.setScenario);\r\n\tconst activePanel = useStore((state) => state.activeDBorOctavePanel);\r\n\r\n\tdistance = useStore((state) => state.distance);\r\n\t\r\n\r\n\tconst [bandSets, setBandSets] = useState(\r\n\t\t{\r\n\t\t\tb63: 100,\r\n\t\t\tb125: 100,\r\n\t\t\tb250: 100,\r\n\t\t\tb500: 100,\r\n\t\t\tb1000: 100,\r\n\t\t\tb2000: 100,\r\n\t\t\tb4000: 100,\r\n\t\t\tb8000: 100\r\n\t\t\t//b16000: 100,\r\n\t\t});\r\n\tconst [bandSetNoise, setBandSetNoise] = useState(\r\n\t\t{\r\n\t\t\t\r\n\t\t\tb63sn: 100,\r\n\t\t\tb125sn: 100,\r\n\t\t\tb250sn: 100,\r\n\t\t\tb500sn: 100,\r\n\t\t\tb1000sn: 100,\r\n\t\t\tb2000sn: 100,\r\n\t\t\tb4000sn: 100,\r\n\t\t\tb8000sn: 100,\r\n\t\t}\r\n\t)\r\n\r\n\tconst resetOctavesValues = () => {\r\n\t\tsetBandSets({\r\n\t\t\tb63: 100,\r\n\t\t\tb125: 100,\r\n\t\t\tb250: 100,\r\n\t\t\tb500: 100,\r\n\t\t\tb1000: 100,\r\n\t\t\tb2000: 100,\r\n\t\t\tb4000: 100,\r\n\t\t\tb8000: 100\r\n\t\t})\r\n\r\n\t\tsetBandSetNoise({\r\n\t\t\t// b63sn: 100 - 26.2,\r\n\t\t\t// b125sn: 100 - 16.1,\r\n\t\t\t// b250sn: 100 - 8.6,\r\n\t\t\t// b500sn: 100 - 3.2,\r\n\t\t\t// b1000sn: 100,\r\n\t\t\t// b2000sn: 100 + 1.2,\r\n\t\t\t// b4000sn: 100 + 1,\r\n\t\t\t// b8000sn: 100 - 1.1,\r\n\t\t\tb63sn: 100,\r\n\t\t\tb125sn: 100,\r\n\t\t\tb250sn: 100,\r\n\t\t\tb500sn: 100,\r\n\t\t\tb1000sn: 100,\r\n\t\t\tb2000sn: 100,\r\n\t\t\tb4000sn: 100,\r\n\t\t\tb8000sn: 100,\r\n\t\t})\r\n\t\t\r\n\t}\r\n\r\n\tconst { b63, b125, b250, b500, b1000, b2000, b4000, b8000 } = bandSets;\r\n\tconst { b63sn, b125sn, b250sn, b500sn, b1000sn, b2000sn, b4000sn, b8000sn } = bandSetNoise;\r\n\r\n\tlet b63dba = b63 - 26.2;\r\n\tlet b125dba = b125 - 16.1;\r\n\tlet b250dba = b250 - 8.6;\r\n\tlet b500dba = b500 - 3.2;\r\n\tlet b1000dba = b1000;\r\n\tlet b2000dba = b2000 + 1.2;\r\n\tlet b4000dba = b4000 + 1;\r\n\tlet b8000dba = b8000 - 1.1;\r\n\t\r\n\tif(activePanel === 'soundPowerOCTAVES')\r\n\t{\r\n\t\tb63dba = parseInt(b63sn) - 26.2;\r\n\t\tb125dba = parseInt(b125sn) - 16.1;\r\n\t\tb250dba = parseInt(b250sn) - 8.6;\r\n\t\tb500dba = parseInt(b500sn) - 3.2;\r\n\t\tb1000dba = parseInt(b1000sn);\r\n\t\tb2000dba = parseInt(b2000sn) + 1.2;\r\n\t\tb4000dba = parseInt(b4000sn) + 1;\r\n\t\tb8000dba = parseInt(b8000sn) - 1.1;\r\n\t\t//console.log(b63dba, b125dba, b250dba, b500dba, b1000dba, b2000dba, b4000dba, b8000dba);\r\n\t}\r\n\t//const { b63dba, b125dba, b250dba, b500dba, b1000dba, b2000dba, b4000dba, b8000dba } = bandSetNoiseDba;\r\n\r\n\r\n\tlet totalSourceNoise = Math.log10(\r\n\t\tMath.pow(10, (b63 / 10))\r\n\t\t+ Math.pow(10, (b125 / 10))\r\n\t\t+ Math.pow(10, (b250 / 10))\r\n\t\t+ Math.pow(10, (b500 / 10))\r\n\t\t+ Math.pow(10, (b1000 / 10))\r\n\t\t+ Math.pow(10, (b2000 / 10))\r\n\t\t+ Math.pow(10, (b4000 / 10))\r\n\t\t+ Math.pow(10, (b8000 / 10))\r\n\t\t//+Math.pow(10,(b16000/10))\r\n\t) * 10;\r\n\r\n\tlet totalSourceNoiseDba = Math.log10(\r\n\t\tMath.pow(10, (b63dba / 10))\r\n\t\t+ Math.pow(10, (b125dba / 10))\r\n\t\t+ Math.pow(10, (b250dba / 10))\r\n\t\t+ Math.pow(10, (b500dba / 10))\r\n\t\t+ Math.pow(10, (b1000dba / 10))\r\n\t\t+ Math.pow(10, (b2000dba / 10))\r\n\t\t+ Math.pow(10, (b4000dba / 10))\r\n\t\t+ Math.pow(10, (b8000dba / 10))\r\n\t\t//+Math.pow(10,(b16000/10))\r\n\t) * 10;\r\n\r\n\r\n\tlet totalSourceNoiseA = Math.log10(\r\n\t\tMath.pow(10, (b63sn / 10))\r\n\t\t+ Math.pow(10, (b125sn / 10))\r\n\t\t+ Math.pow(10, (b250sn / 10))\r\n\t\t+ Math.pow(10, (b500sn / 10))\r\n\t\t+ Math.pow(10, (b1000sn / 10))\r\n\t\t+ Math.pow(10, (b2000sn / 10))\r\n\t\t+ Math.pow(10, (b4000sn / 10))\r\n\t\t+ Math.pow(10, (b8000sn / 10))\r\n\t) * 10;\r\n\r\n\tconst GetCalcsB2 = (band) => {\r\n\t\tconst calcsB2a = 2 * PathDifference;\r\n\t\tconst calcsB2b = (band / 343);\r\n\t\tconst calcsB2c = calcsB2a * calcsB2b;\r\n\t\tlet calcsB2result = ((sourceSoundPower == null) ? sourceSoundPower : Math.log10(calcsB2c));\r\n\t\treturn calcsB2result;\r\n\t}\r\n\r\n\tdistanceAttenuation = 20 * Math.log10(distance);\r\n\r\n\tlet measuredDistance = initialMeasurementDistance;\r\n\r\n\tlet distanceAttenuationMeasured = 20 * Math.log10(distance / measuredDistance);\r\n\r\n\tconst calculateBarrierAttenuation = (band, input) => {\r\n\t\tcalcsB2 = GetCalcsB2(band);\r\n\t\tlet result = (\r\n\t\t\t((receiverHeight - sourceHeight) / (barrierXpos + BarrierToRecieverDistance)) > ((barrierHeight - sourceHeight) / barrierXpos)\r\n\t\t\t\t? 0\r\n\t\t\t\t:\r\n\t\t\t\t(PathDifference === 0\r\n\t\t\t\t\t?\r\n\t\t\t\t\t5\r\n\t\t\t\t\t:\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t(input == null || input == 0)\r\n\t\t\t\t\t\t\t?\r\n\t\t\t\t\t\t\tinput\r\n\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t13.33 + 8.34\r\n\t\t\t\t\t\t\t* calcsB2 + 2.445\r\n\t\t\t\t\t\t\t* Math.pow(calcsB2, 2) - 0.8838\r\n\t\t\t\t\t\t\t* Math.pow(calcsB2, 3) - 0.3012\r\n\t\t\t\t\t\t\t* Math.pow(calcsB2, 4) + 0.1644\r\n\t\t\t\t\t\t\t* Math.pow(calcsB2, 5) + 0.01832\r\n\t\t\t\t\t\t\t* Math.pow(calcsB2, 6) - 0.010024\r\n\t\t\t\t\t\t\t* Math.pow(calcsB2, 7)\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t)\r\n\t\treturn result;\r\n\t}\r\n\r\n\tconst calculateRecieverNoiseLin = (bandNoise, bandBarrierAtn, bandDistanceAtn) => {\r\n\t\treturn (bandNoise - bandBarrierAtn - bandDistanceAtn);\r\n\t}\r\n\r\n\tconst calculateRecieverNoiseA = (bandSourceNoise, bandBarrierAtn, bandDistanceAtn) => {\r\n\t\t//console.log(bandSourceNoise, bandBarrierAtn, bandDistanceAtn);\r\n\t\treturn (bandSourceNoise - bandBarrierAtn - bandDistanceAtn);\r\n\t}\r\n\r\n\tconst calculateRecieverNoiseDba = (bandSourceNoise) => {\r\n\t\t\r\n\t\tlet res = bandSourceNoise-(20*Math.log10(distance))-8\r\n\r\n\t\treturn (res);\r\n\t}\r\n\r\n\tconst roundValue = (value) => {\r\n\t\treturn +(Math.round(value + \"e+1\") + \"e-1\");\r\n\t}\r\n\r\n\tconst calculateRecieverNoiseWithoutBarriersMeasured = (noiseBand, ba) => {\r\n\t\t//let distanceAttenuation1 = 20 * Math.log(distance/measuredDistance);\r\n\t\t//let distanceAttenuation1 = 20 * Math.log(distance);\r\n\t\t//console.log(distanceAttenuation1, noiseBand);\r\n\t\t//let resm = noiseBand - (distanceAttenuation1);\r\n\t\tlet resm = noiseBand - distanceAttenuationMeasured;\r\n\t\treturn (resm);\r\n\t}\r\n\r\n\tconst calculateRecieverNoiseWithoutBarrierSoundPower = (noiseBand) => {\r\n\t\tlet res = noiseBand - distanceAttenuation;\r\n\t\treturn (res);\r\n\t}\r\n\r\n\tconst calculateRecieverSPLNoBarrier = (dblin) =>\r\n\t{\r\n\t\t//console.log(\"band is\",dblin);\r\n\t\t\r\n\t\tlet res = dblin-(20*Math.log10(distance))-8;\r\n\t\treturn res;\r\n\t}\r\n\t//distanceAttenuation same for all; maybe not for A! \r\n\t//ba = barrier attenuation (universal)\r\n\t//rnlin = measured received noise with barrier\r\n\t//nvnb = measured noise no barrier\r\n\t//spnnb = sound power noise no barrier\r\n\t//nrla = sound power noise with barrier\r\n\t//splnb = spl no barrier calculation.\r\n\r\n\tlet b63ba = calculateBarrierAttenuation(63, b63);\r\n\tlet b63rnlin = calculateRecieverNoiseLin(b63, b63ba, distanceAttenuationMeasured);\r\n\tlet b63nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b63,b63ba, distanceAttenuation);\r\n\tlet b63nrla = calculateRecieverNoiseA(b63sn, b63ba, distanceAttenuation);\r\n\tlet b63spnnb = calculateRecieverNoiseWithoutBarrierSoundPower(b63sn, distanceAttenuation);\r\n\tlet b63splnb = calculateRecieverSPLNoBarrier(b63sn);\r\n\tlet b63sp = b63splnb - b63ba;\r\n\tlet b63spdba = calculateRecieverNoiseDba(b63dba);\r\n\tlet b63badba = b63spdba - b63ba;\r\n\tb63nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b63dba);\r\n\tb63rnlin = b63nvnb - b63ba;\r\n\r\n\tlet b125ba = calculateBarrierAttenuation(125, b125);\r\n\tlet b125rnlin = calculateRecieverNoiseLin(b125, b125ba, distanceAttenuationMeasured);\r\n\tlet b125nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b125, distanceAttenuationMeasured);\r\n\tlet b125nrla = calculateRecieverNoiseA(b125, b125ba, distanceAttenuation);\r\n\tlet b125spnnb = calculateRecieverNoiseWithoutBarrierSoundPower(b125sn, distanceAttenuation);\r\n\tlet b125splnb = calculateRecieverSPLNoBarrier(b125sn);\r\n\tlet b125sp = b125splnb - b125ba;\r\n\tlet b125spdba = calculateRecieverNoiseDba(b125dba);\r\n\tlet b125badba = b125spdba - b125ba;\r\n\tb125nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b125dba);\r\n\tb125rnlin = b125nvnb - b125ba;\r\n\r\n\tlet b250ba = calculateBarrierAttenuation(250, b250);\r\n\tlet b250rnlin = calculateRecieverNoiseLin(b250, b250ba, distanceAttenuationMeasured);\r\n\tlet b250nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b250, distanceAttenuationMeasured);\r\n\tlet b250nrla = calculateRecieverNoiseA(b250, b250ba, distanceAttenuation);\r\n\tlet b250spnnb = calculateRecieverNoiseWithoutBarrierSoundPower(b250sn, distanceAttenuation);\r\n\tlet b250splnb = calculateRecieverSPLNoBarrier(b250sn);\r\n\tlet b250sp = b250splnb - b250ba;\r\n\tlet b250spdba = calculateRecieverNoiseDba(b250dba);\r\n\tlet b250badba = b250spdba - b250ba;\r\n\tb250nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b250dba);\r\n\tb250rnlin = b250nvnb - b250ba;\r\n\r\n\tlet b500ba = calculateBarrierAttenuation(500, b500);\r\n\tlet b500rnlin = calculateRecieverNoiseLin(b500, b500ba, distanceAttenuationMeasured);\r\n\tlet b500nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b500, distanceAttenuationMeasured);\r\n\tlet b500nrla = calculateRecieverNoiseA(b500, b500ba, distanceAttenuation);\r\n\tlet b500spnnb = calculateRecieverNoiseWithoutBarrierSoundPower(b500sn, distanceAttenuation);\r\n\tlet b500splnb = calculateRecieverSPLNoBarrier(b500sn);\r\n\tlet b500sp = b500splnb - b500ba;\r\n\tlet b500spdba = calculateRecieverNoiseDba(b500dba);\r\n\tlet b500badba = b500spdba - b500ba;\r\n\tb500nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b500dba);\r\n\tb500rnlin = b500nvnb - b500ba;\r\n\r\n\tlet b1000ba = calculateBarrierAttenuation(1000, b1000);\r\n\tlet b1000rnlin = calculateRecieverNoiseLin(b1000, b1000ba, distanceAttenuationMeasured);\r\n\tlet b1000nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b1000, distanceAttenuationMeasured);\r\n\tlet b1000spnnb = calculateRecieverNoiseWithoutBarrierSoundPower(b1000sn, distanceAttenuation);\r\n\tlet b1000nrla = calculateRecieverNoiseA(b1000, b1000ba, distanceAttenuation);\r\n\tlet b1000splnb = calculateRecieverSPLNoBarrier(b1000sn);\r\n\tlet b1000sp = b1000splnb - b1000ba;\r\n\tlet b1000spdba = calculateRecieverNoiseDba(b1000dba);\r\n\tlet b1000badba = b1000spdba - b1000ba;\r\n\tb1000nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b1000dba);\r\n\tb1000rnlin = b1000nvnb - b1000ba;\r\n\r\n\tlet b2000ba = calculateBarrierAttenuation(2000, b2000);\r\n\tlet b2000rnlin = calculateRecieverNoiseLin(b2000, b2000ba, distanceAttenuationMeasured);\r\n\tlet b2000nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b2000, distanceAttenuationMeasured);\r\n\tlet b2000spnnb = calculateRecieverNoiseWithoutBarrierSoundPower(b2000sn, distanceAttenuation);\r\n\tlet b2000nrla = calculateRecieverNoiseA(b2000, b2000ba, distanceAttenuation);\r\n\tlet b2000splnb = calculateRecieverSPLNoBarrier(b2000sn);\r\n\tlet b2000sp = b2000splnb - b2000ba;\r\n\tlet b2000spdba = calculateRecieverNoiseDba(b2000dba);\r\n\tlet b2000badba = b2000spdba - b2000ba;\r\n\tb2000nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b2000dba);\r\n\tb2000rnlin = b2000nvnb - b2000ba;\r\n\r\n\tlet b4000ba = calculateBarrierAttenuation(4000, b4000);\r\n\tlet b4000rnlin = calculateRecieverNoiseLin(b4000, b4000ba, distanceAttenuationMeasured);\r\n\tlet b4000nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b4000, distanceAttenuationMeasured);\r\n\tlet b4000spnnb = calculateRecieverNoiseWithoutBarrierSoundPower(b4000sn, distanceAttenuation);\r\n\tlet b4000nrla = calculateRecieverNoiseA(b4000, b4000ba, distanceAttenuation);\r\n\tlet b4000splnb = calculateRecieverSPLNoBarrier(b4000sn);\r\n\tlet b4000sp = b4000splnb - b4000ba;\r\n\tlet b4000spdba = calculateRecieverNoiseDba(b4000dba);\r\n\tlet b4000badba = b4000spdba - b4000ba;\r\n\tb4000nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b4000dba);\r\n\tb4000rnlin = b4000nvnb - b4000ba;\r\n\r\n\tlet b8000ba = calculateBarrierAttenuation(8000, b8000);\r\n\tlet b8000rnlin = calculateRecieverNoiseLin(b8000, b8000ba, distanceAttenuationMeasured);\r\n\tlet b8000nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b8000, distanceAttenuationMeasured);\r\n\tlet b8000spnnb = calculateRecieverNoiseWithoutBarrierSoundPower(b8000sn, distanceAttenuation);\r\n\tlet b8000nrla = calculateRecieverNoiseA(b8000, b8000ba, distanceAttenuation);\r\n\tlet b8000splnb = calculateRecieverSPLNoBarrier(b8000sn);\r\n\tlet b8000sp = b8000splnb - b8000ba;\r\n\tlet b8000spdba = calculateRecieverNoiseDba(b8000dba);\r\n\tlet b8000badba = b8000spdba - b8000ba;\r\n\tb8000nvnb = calculateRecieverNoiseWithoutBarriersMeasured(b8000dba);\r\n\tb8000rnlin = b8000nvnb - b8000ba;\r\n\r\n\tconst receiverNoiseLevelBandsDba = [b63spdba,b125spdba,b250spdba,b500spdba,b1000spdba,b2000spdba,b4000spdba,b8000spdba]\r\n\t/* Used As WITH Barrier Reciever SPL In Sound Power */\r\n\tconst receiverNoiseLevelSpDba = [b63badba,b125badba,b250badba,b500badba,b1000badba,b2000badba,b4000badba,b8000badba]\r\n\r\n\tconst receiverNoiseLevelBands = [b63sp,b125sp,b250sp,b500sp,b1000sp,b2000sp,b4000sp,b8000sp]\r\n\r\n\tconst measuredNoiseNoBarrier = [b63nvnb,b125nvnb,b250nvnb,b500nvnb,b1000nvnb,b2000nvnb,b4000nvnb,b8000nvnb]\r\n\r\n\tconst receiverSPLList = [b63splnb,b125splnb,b250splnb,b500splnb,b1000splnb,b2000splnb,b4000splnb,b8000splnb]\r\n\r\n\tconst measuredNoiseNoBarrierSoundPower = [b63spnnb,b125spnnb,b250spnnb,b500spnnb,b1000spnnb,b2000spnnb,b4000spnnb,b8000spnnb]\r\n\r\n\tlet measuredNoiseNoBarrierTotal = Math.log10(Math.pow(10, (b63nvnb / 10))\r\n\t\t+ Math.pow(10, (b125nvnb / 10))\r\n\t\t+ Math.pow(10, (b250nvnb / 10))\r\n\t\t+ Math.pow(10, (b500nvnb / 10))\r\n\t\t+ Math.pow(10, (b1000nvnb / 10))\r\n\t\t+ Math.pow(10, (b2000nvnb / 10))\r\n\t\t+ Math.pow(10, (b4000nvnb / 10))\r\n\t\t+ Math.pow(10, (b8000nvnb / 10))) * 10;\r\n\t/*dB(A)*/\r\n\tlet totalRecieverNoiseNoBarrierDba = Math.log10(Math.pow(10, (b63splnb / 10))\r\n\t\t+ Math.pow(10, (b125splnb / 10))\r\n\t\t+ Math.pow(10, (b250splnb / 10))\r\n\t\t+ Math.pow(10, (b500splnb / 10))\r\n\t\t+ Math.pow(10, (b1000splnb / 10))\r\n\t\t+ Math.pow(10, (b2000splnb / 10))\r\n\t\t+ Math.pow(10, (b4000splnb / 10))\r\n\t\t+ Math.pow(10, (b8000splnb / 10))) * 10;\r\n\r\n\r\n\tconst barrierAttenuationList = [b63ba,b125ba,b250ba,b500ba,b1000ba,b2000ba,b4000ba,b8000ba]\r\n\r\n\tlet valids = true;\r\n\tlet barrierAttenuation = 1;\r\n\tlet measurementDistance = 2;\r\n\tlet sourceNoisePower = 3;\r\n\r\n\tlet addRNLIN = Math.pow(10, (b63rnlin / 10))\r\n\t\t+ Math.pow(10, (b125rnlin / 10))\r\n\t\t+ Math.pow(10, (b250rnlin / 10))\r\n\t\t+ Math.pow(10, (b500rnlin / 10))\r\n\t\t+ Math.pow(10, (b1000rnlin / 10))\r\n\t\t+ Math.pow(10, (b2000rnlin / 10))\r\n\t\t+ Math.pow(10, (b4000rnlin / 10))\r\n\t\t+ Math.pow(10, (b8000rnlin / 10));\r\n\r\n\r\n\tlet totalRecieverNoiceLin = Math.log10(addRNLIN) * 10;\r\n\r\n\r\n\t// let totalRecieverNoiseA = Math.log10(Math.pow(10, (b63nrla / 10))\r\n\t// \t+ Math.pow(10, (b125nrla / 10))\r\n\t// \t+ Math.pow(10, (b250nrla / 10))\r\n\t// \t+ Math.pow(10, (b500nrla / 10))\r\n\t// \t+ Math.pow(10, (b1000nrla / 10))\r\n\t// \t+ Math.pow(10, (b2000nrla / 10))\r\n\t// \t+ Math.pow(10, (b4000nrla / 10))\r\n\t// \t+ Math.pow(10, (b8000nrla / 10))) * 10;\r\n\r\n\t/* Linear */\r\n\r\n\tlet totalRecieverNoiseA = Math.log10(Math.pow(10, (b63sp / 10))\r\n\t+ Math.pow(10, (b125sp / 10))\r\n\t+ Math.pow(10, (b250sp / 10))\r\n\t+ Math.pow(10, (b500sp / 10))\r\n\t+ Math.pow(10, (b1000sp / 10))\r\n\t+ Math.pow(10, (b2000sp / 10))\r\n\t+ Math.pow(10, (b4000sp / 10))\r\n\t+ Math.pow(10, (b8000sp / 10))) * 10;\r\n\r\n\t/*dB(A) */\r\n\tlet receiverNoiseLevelSpDbaTotal = Math.log10(Math.pow(10, (b63badba / 10))\r\n\t+ Math.pow(10, (b125badba / 10))\r\n\t+ Math.pow(10, (b250badba / 10))\r\n\t+ Math.pow(10, (b500badba / 10))\r\n\t+ Math.pow(10, (b1000badba / 10))\r\n\t+ Math.pow(10, (b2000badba / 10))\r\n\t+ Math.pow(10, (b4000badba / 10))\r\n\t+ Math.pow(10, (b8000badba / 10))) * 10;\r\n\r\n\tconst receiverNoiseLin = [b63rnlin,b125rnlin,b250rnlin,b500rnlin,b1000rnlin,b2000rnlin,b4000rnlin,b8000rnlin]\r\n\tconst receiverNoiseA = [b63nrla,b125nrla,b250nrla,b500nrla,b1000nrla,b2000nrla,b4000nrla,b8000nrla]\r\n\r\n\tconst soundPressureNoBarrier = initialSoundNoise - distanceAttenuationMeasured;\r\n\r\n\tfunction changeBandValue(e, item) {\r\n\t\tconst value = e.target.value;\r\n\t\tsetBandSets({ ...bandSets, [item]: value })\r\n\t}\r\n\r\n\tfunction changeBandNoiseValue(e, item) {\r\n\t\tconst value = e.target.value;\r\n\t\tsetBandSetNoise({ ...bandSetNoise, [item]: value })\r\n\t\t//setBandSets({ ...bandSets, [item]: value })\r\n\t}\r\n\r\n\tfunction onChange(e) {\r\n\t\tconst value = e.target.value;\r\n\t\tsetScenario(value);\r\n\t}\r\n\r\n\tconst showCalculations = useStore((state) => state.showCalculations);\r\n\tconst setShowCalculations = useStore((state) => state.setShowCalculations);\r\n\t\r\n\r\n\tconst displayCalcsAndScroll = (showCalculations) => {\r\n\t\tif (showCalculations) {\r\n\t\t\tconst myTimeout = setTimeout(scrollToCalcs, 200);\r\n\t\t\tfunction scrollToCalcs() {\r\n\t\t\t\tdocument.querySelector('#calculations').scrollIntoView({\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\tsetShowCalculations(showCalculations)\r\n\t};\r\n\r\n\tconst showCalculationsButtonTitle = showCalculations ? 'Hide Calculations' : 'Show Calculations';\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{\r\n\t\t\t\t\tactivePanel === 'measuredDB' && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t { setinitialMeasurementDistance(e) }}\r\n\t\t\t\t\t\t\t\t\tsetinitialSoundNoise={setinitialSoundNoise}\r\n\t\t\t\t\t\t\t\t\tinitialSoundNoise={initialSoundNoise}\r\n\t\t\t\t\t\t\t\t\treceiverSPLNoBarrier={soundPressureNoBarrier}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t { resetOctavesValues(e) }} />\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\t\t\t\t\tactivePanel === 'measuredOCTAVES' && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t { setinitialMeasurementDistance(e) }}\r\n\t\t\t\t\t\t\t\t\tbandSets={bandSets}\r\n\t\t\t\t\t\t\t\t\tchangeBandValue={(e, item) => { changeBandValue(e, item) }}\r\n\t\t\t\t\t\t\t\t\ttotalSourceNoise={totalSourceNoise}\r\n\t\t\t\t\t\t\t\t\treceiverNoiseLin={receiverNoiseLin}\r\n\t\t\t\t\t\t\t\t\ttotalRecieverNoiceLin={totalRecieverNoiceLin}\r\n\t\t\t\t\t\t\t\t\tmeasuredNoiseNoBarrierTotal={measuredNoiseNoBarrierTotal}\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tmeasuredNoiseNoBarrier={measuredNoiseNoBarrier}\r\n\t\t\t\t\t\t\t\t\ttotalSourceNoiseDba={totalSourceNoiseDba}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t { resetOctavesValues(e) }} />\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\r\n\t\t\t\t\tactivePanel === 'soundPowerOCTAVES' && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t changeBandNoiseValue(e, item)}\r\n\t\t\t\t\t\t\t\t\ttotalSourceNoiseA={totalSourceNoiseA}\r\n\t\t\t\t\t\t\t\t\treceiverNoiseA={receiverNoiseLevelSpDba}\r\n\t\t\t\t\t\t\t\t\ttotalRecieverNoiseA={receiverNoiseLevelSpDbaTotal}\r\n\t\t\t\t\t\t\t\t\tbandSetNoise={bandSetNoise}\r\n\t\t\t\t\t\t\t\t\tmeasuredNoiseNoBarrierSoundPower={measuredNoiseNoBarrierSoundPower}\r\n\t\t\t\t\t\t\t\t\tmeasuredNoiseNoBarrierSoundPowerTotal={totalRecieverNoiseNoBarrierDba}\r\n\t\t\t\t\t\t\t\t\tbarrierAttenuationList={barrierAttenuationList}\r\n\t\t\t\t\t\t\t\t\treceiverNoiseLin = {receiverNoiseLevelSpDba}\r\n\t\t\t\t\t\t\t\t\treceiverSPLList = {receiverNoiseLevelBandsDba}\r\n\t\t\t\t\t\t\t\t\ttotalSourceNoiseDba={totalSourceNoiseDba}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t { resetOctavesValues(e) }} />\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\t{\r\n\t\t\t\t\tactivePanel === 'soundPowerDB' && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t { setinitialSourceSoundPower(e) }}\r\n\t\t\t\t\t\t\t\t\tinitialSourceSoundPower={initialSourceSoundPower}\r\n\t\t\t\t\t\t\t\t\tsetinitialFrequency={(e) => { setinitialFrequency(e) }}\r\n\t\t\t\t\t\t\t\t\tinitialFrequency={initialFrequency}\r\n\t\t\t\t\t\t\t\t\tRecieverNoiseLevel={RecieverNoiseLevel}\r\n\t\t\t\t\t\t\t\t\treceiverSPLNoBarrier={receiverSPLNoBarrier}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t { resetOctavesValues(e) }} />\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t{showCalculations && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t)\r\n}\r\n\r\nexport default Multiband;\r\n","import { useEffect, useRef } from 'react';\r\n\r\nimport { useModal } from '../../../ModalContext';\r\nimport useStore from '../../../store/store';\r\nimport { FixedNumber } from '../../../utility';\r\n\r\nconst HeightRuler = ({ height, gRef, textOnLeft, onHeightChange }) => {\r\n\tconst rulerGroup = useRef();\r\n\tconst lineRef = useRef();\r\n\tconst textRef = useRef();\r\n\tconst arrowRef = useRef();\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst triggerModal = useModal();\r\n\r\n\tuseEffect(() => {\r\n\t\tconst g = rulerGroup.current = gRef.current.group()\r\n\t\t\t.attr({ class: 'clickable' })\r\n\t\t\t.transform({ translateX: textOnLeft ? -12 : 12 });\r\n\t\tlineRef.current = g.polyline().stroke({ color: '#000', width: '1' });\r\n\t\ttextRef.current = g.text().font({ anchor: textOnLeft ? 'end' : 'start' }).id('text');\r\n\r\n\t\tg.polygon('0 0 -3 -5 3 -5').stroke({ color: '#000', width: '1' }).transform({ scale: 0.8 });\r\n\t\tarrowRef.current = g.polygon('0 0 -3 5 3 5').stroke({ color: '#000', width: '1' }).transform({ scale: 0.8 });\r\n\t\tg.rect().fill('transparent').id('rect');\r\n\r\n\t\treturn () => g.remove();\r\n\t}, [gRef.current]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (lineRef.current) {\r\n\t\t\tlineRef.current.plot(`0,0 0,-${getUnitFromMeter(height)}`);\r\n\t\t}\r\n\r\n\t\tif (textRef.current) {\r\n\t\t\ttextRef.current\r\n\t\t\t\t.text(`${FixedNumber(height)}m`)\r\n\t\t\t\t.transform({ translate: [textOnLeft ? -10 : 10, -getUnitFromMeter(height) / 2] });\r\n\t\t}\r\n\t\tif (arrowRef.current) {\r\n\t\t\tarrowRef.current\r\n\t\t\t\t.transform({ scale: 0.8, translateY: -getUnitFromMeter(height) });\r\n\t\t}\r\n\t\tif (rulerGroup.current) {\r\n\t\t\trulerGroup.current.findOne('#rect')\r\n\t\t\t\t.attr({\r\n\t\t\t\t\twidth: '12px',\r\n\t\t\t\t\theight: getUnitFromMeter(height),\r\n\t\t\t\t})\r\n\t\t\t\t.transform({ translate: { x: -6, y: -getUnitFromMeter(height) } });\r\n\t\t}\r\n\t}, [gRef.current, height, distance]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst onSave = (newValue) => onHeightChange(newValue);\r\n\t\trulerGroup.current.click(() => triggerModal(\r\n\t\t\t'H:',\r\n\t\t\tFixedNumber(height),\r\n\t\t\tonSave,\r\n\t\t\trulerGroup.current.findOne('#text').node\r\n\t\t));\r\n\t\treturn () => {\r\n\t\t\trulerGroup.current.click(null);\r\n\t\t};\r\n\t}, [gRef.current, rulerGroup.current, height, onHeightChange]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport { HeightRuler };","import { useEffect, useState, useRef, useCallback } from 'react';\r\nimport { SVG } from '@svgdotjs/svg.js';\r\n\r\nimport useStore from '../../store/store';\r\nimport { HeightRuler } from './common/HeightRuler';\r\n\r\nconst Source = () => {\r\n\tconst gRef = useRef();\r\n\tconst [gParentRef, setGParentRef] = useState({ current: undefined });\r\n\r\n\tconst getSoundSourcePosition = useStore((state) => state.getSoundSourcePosition);\r\n\tconst getSingleUnit = useStore(state => state.getSingleUnit);\r\n\tconst singleUnit = getSingleUnit();\r\n\r\n\tconst sourceHeight = useStore((state) => state.sourceHeight);\r\n\tconst setSourceHeight = useStore((state) => state.setSourceHeight);\r\n\r\n\tconst onHeightChange = useCallback((newHeight) => {\r\n\t\tsetSourceHeight(newHeight);\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#main');\r\n\r\n\t\tconst gParent = draw.group();\r\n\t\tsetGParentRef({ current: gParent });\r\n\t\tconst { x, y } = getSoundSourcePosition();\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\t\tconst g = gRef.current = gParent.group();\r\n\r\n\t\tg.circle(10).cx(0).cy(0).fill('#ef7521');\r\n\t\tlet boxAtDragStart;\r\n\t\tconst sourceText = g.text('SOURCE').attr({ x: 4, y: -15 }).font({ anchor: 'middle', size: '12px' }).fill('#ffffff');\r\n\t\tconst sourceTextSize = sourceText.node.getBBox();\r\n\t\tg.rect(sourceTextSize.width + 10, sourceTextSize.height + 4)\r\n\t\t\t.transform({ translate: { x: sourceTextSize.x - 5, y: sourceTextSize.y - 2 } })\r\n\t\t\t.radius(5)\r\n\t\t\t.fill('#ef7521')\r\n\t\t\t.backward();\r\n\t\tg\r\n\t\t\t.attr({ class: 'draggable' })\r\n\t\t\t.draggable()\r\n\t\t\t.on('dragstart', (e) => {\r\n\t\t\t\tboxAtDragStart = e.detail.box;\r\n\t\t\t})\r\n\t\t\t.on('dragmove', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst { box } = e.detail;\r\n\t\t\t\tif (Math.abs(boxAtDragStart.y2 - box.y2) > 0) {\r\n\t\t\t\t\tconst newOffset = (g.transform('translateY') + (box.y2 - box.y2 % singleUnit) - 10 / 2).toFixed(1);\r\n\t\t\t\t\tsetSourceHeight(newOffset > 0 ? 0 : Math.abs(newOffset * 0.1 / singleUnit).toFixed(1));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\treturn () => { setGParentRef({ current: undefined }); gParent.remove(); };\r\n\t}, [singleUnit]);\r\n\r\n\tuseEffect(() => {\r\n\t\tgRef.current.transform({\r\n\t\t\ttranslateY: -sourceHeight * singleUnit / 0.1\r\n\t\t});\r\n\t}, [singleUnit, sourceHeight]);\r\n\r\n\treturn !gParentRef.current ? null : (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport { Source };\r\n","import { useEffect, useState, useRef, useCallback } from 'react';\r\nimport { SVG } from '@svgdotjs/svg.js';\r\n\r\nimport useStore from '../../store/store';\r\nimport { HeightRuler } from './common/HeightRuler';\r\n\r\nconst Receiver = () => {\r\n\tconst gRef = useRef();\r\n\tconst [gParentRef, setGParentRef] = useState({ current: undefined });\r\n\r\n\tconst getReceiverPosition = useStore((state) => state.getReceiverPosition);\r\n\tconst getSingleUnit = useStore(state => state.getSingleUnit);\r\n\tconst singleUnit = getSingleUnit();\r\n\r\n\tconst receiverHeight = useStore((state) => state.receiverHeight);\r\n\tconst setReceiverHeight = useStore((state) => state.setReceiverHeight);\r\n\r\n\tconst onHeightChange = useCallback((newHeight) => {\r\n\t\tsetReceiverHeight(newHeight);\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\t// TODO: this element drag and drop works great (rect and text) while\r\n\t\t// others don't\r\n\t\tconst draw = SVG('#main');\r\n\t\tconst gParent = draw.group();\r\n\t\tsetGParentRef({ current: gParent });\r\n\t\tconst { x, y } = getReceiverPosition();\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\r\n\t\tconst g = gRef.current = gParent.group();\r\n\t\tconst receiverText = g.text('RECEIVER').attr({ x: 4, y: -15 }).font({ anchor: 'middle', size: '12px' }).fill('#ffffff');\r\n\t\tconst receiverTextSize = receiverText.node.getBBox();\r\n\t\tg.rect(receiverTextSize.width + 10, receiverTextSize.height + 4)\r\n\t\t\t.transform({ translate: { x: receiverTextSize.x - 5, y: receiverTextSize.y - 2 } })\r\n\t\t\t.radius(5)\r\n\t\t\t.fill('#ef7521')\r\n\t\t\t.backward();\r\n\t\tg.polygon('0 0 6 10 -6 10');\r\n\r\n\t\tlet boxAtDragStart;\r\n\t\tg\r\n\t\t\t.attr({ class: 'draggable' })\r\n\t\t\t.draggable()\r\n\t\t\t.on('dragstart', (e) => {\r\n\t\t\t\tboxAtDragStart = e.detail.box;\r\n\t\t\t})\r\n\t\t\t.on('dragmove', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst { box } = e.detail;\r\n\t\t\t\tif (Math.abs(boxAtDragStart.y2 - box.y2) > 0) {\r\n\t\t\t\t\tconst newOffset = (g.transform('translateY') + (box.y2 - box.y2 % singleUnit) - 14 / 2);\r\n\t\t\t\t\tsetReceiverHeight(newOffset > 0 ? 0 : Math.abs(newOffset * 0.1 / singleUnit).toFixed(1));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tsetGParentRef({ current: undefined });\r\n\t\t\tgParent.remove();\r\n\t\t};\r\n\t}, [singleUnit]);\r\n\r\n\tuseEffect(() => {\r\n\t\tgRef.current.transform({\r\n\t\t\ttranslateY: -receiverHeight * singleUnit / 0.1\r\n\t\t});\r\n\t}, [singleUnit, receiverHeight]);\r\n\r\n\treturn !gParentRef.current ? null : (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport { Receiver };","import { useEffect, useRef } from 'react';\r\nimport { SVG } from '@svgdotjs/svg.js';\r\n\r\nimport useStore from '../../store/store';\r\nimport { IntersectionCoordinates } from '../../utility';\r\n\r\nconst Line = () => {\r\n\tconst lineRef = useRef();\r\n\t\r\n\tconst sourceHeight = useStore((state) => state.sourceHeight);\r\n\tconst receiverHeight = useStore((state) => state.receiverHeight);\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst getSoundSourcePosition = useStore((state) => state.getSoundSourcePosition);\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\r\n\tconst barrierHeight = useStore((state) => state.scenario === 'noBarriers' ? 0 : state.barrier1.height);\r\n\tconst barrierXpos = useStore((state) => state.scenario === 'noBarriers' ? 0 : state.barrier1.distance);\r\n\r\n\tconst { height: barrier2Height, distance: barrier2Distance } = useStore(\r\n\t\t(state) => (state.scenario === 'noBarriers' || state.scenario === 'singleBarrier') ? { height: 0, distance: 0 } : state.barrier2\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#main');\r\n\t\tconst g = draw.group();\r\n\t\tconst { x, y } = getSoundSourcePosition();\r\n\t\t\r\n\t\tg.transform({ translateX: x, translateY: y });\r\n\t\tlineRef.current = g.polyline().stroke({ color: '#ef7521', dasharray: '5.5', width: '1', linecap: 'round' }).fill('none').id('line');\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tfunction IsABarrierAboveSourceReceiver() {\r\n\t\t\tconst { y: y1 } = IntersectionCoordinates(\r\n\t\t\t\t{ x0: 0, y0: sourceHeight },\r\n\t\t\t\t{ x1: distance, y1: receiverHeight },\r\n\t\t\t\t{ x: barrierXpos },\r\n\t\t\t);\r\n\t\t\tconst { y: y2 } = IntersectionCoordinates(\r\n\t\t\t\t{ x0: 0, y0: sourceHeight },\r\n\t\t\t\t{ x1: distance, y1: receiverHeight },\r\n\t\t\t\t{ x: barrier2Distance },\r\n\t\t\t);\r\n\t\t\treturn barrier2Height > y2 || barrierHeight > y1;\r\n\t\t}\r\n\t\tif (lineRef.current) {\r\n\t\t\tlet barriers = [{ distance: barrierXpos, height: barrierHeight }, { distance: barrier2Distance, height: barrier2Height }];\r\n\t\t\tbarriers = Number(barrier2Distance) < Number(barrierXpos) ? [{ ...barriers[1] }, { ...barriers[0] }] : barriers;\r\n\t\t\t\r\n\t\t\tconst isABarrierAboveSourceReceiver = IsABarrierAboveSourceReceiver();\r\n\t\t\t// closest barrier, intersection coordinates\r\n\t\t\tconst { x: x1, y: y1 } = IntersectionCoordinates(\r\n\t\t\t\t{ x0: 0, y0: sourceHeight },\r\n\t\t\t\tisABarrierAboveSourceReceiver ? { x1: barriers[1].distance, y1: barriers[1].height } : { x1: distance, y1: receiverHeight },\r\n\t\t\t\t{ x: barriers[0].distance },\r\n\t\t\t);\r\n\t\t\t// farthest barrier, intersection coordinates\r\n\t\t\tconst { x: x2, y: y2 } = IntersectionCoordinates(\r\n\t\t\t\tisABarrierAboveSourceReceiver ? { x0: barriers[0].distance, y0: barriers[0].height } : { x0: 0, y0: sourceHeight },\r\n\t\t\t\t{ x1: distance, y1: receiverHeight },\r\n\t\t\t\t{ x: barriers[1].distance },\r\n\t\t\t);\r\n\r\n\t\t\tlineRef.current.plot(`\r\n\t\t\t\t0,-${getUnitFromMeter(sourceHeight)}\r\n\t\t\t\t${getUnitFromMeter(x1)},-${getUnitFromMeter(y1 > barriers[0].height ? y1 : barriers[0].height)}\r\n\t\t\t\t${getUnitFromMeter(x2)},-${getUnitFromMeter(y2 > barriers[1].height ? y2 : barriers[1].height)}\r\n\t\t\t\t${getUnitFromMeter(distance)},-${getUnitFromMeter(receiverHeight)}\r\n\t\t\t`);\r\n\t\t}\r\n\t}, [sourceHeight, receiverHeight, distance, barrierHeight, barrierXpos, barrier2Distance, barrier2Height]);\r\n\r\n\treturn null;\r\n};\r\n\r\nexport { Line };","import { useEffect, useState, useRef, useCallback } from 'react';\r\nimport { SVG } from '@svgdotjs/svg.js';\r\n\r\nimport useStore from '../../store/store';\r\nimport { HeightRuler } from './common/HeightRuler';\r\n\r\nconst FirstBarrier = () => {\r\n\tconst gRef = useRef();\r\n\tconst [gRulerRef, setGRulerRef] = useState({ current: undefined });\r\n\tconst gParentRef = useRef();\r\n\tconst barrierRef = useRef();\r\n\tconst barrierHeight = useStore((state) => state.barrier1.height);\r\n\tconst barrierXpos = useStore((state) => state.barrier1.distance);\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\tconst getSingleUnit = useStore((state) => state.getSingleUnit);\r\n\tconst singleUnit = getSingleUnit();\r\n\tconst setBarrier1 = useStore((state) => state.setBarrier1);\r\n\tconst getfirstBarrierInitialPosition = useStore((state) => state.getfirstBarrierInitialPosition);\r\n\t\r\n\tconst onHeightChange = useCallback((newHeight) => {\r\n\t\tsetBarrier1({ height: newHeight });\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#barriers');\r\n\t\tconst gParent = gParentRef.current = draw.group().id('barrier1');\r\n\t\tconst { x, y } = getfirstBarrierInitialPosition();\r\n\r\n\t\tconst g = gRef.current = gParent?.group();\r\n\t\tsetGRulerRef({ current: gParent.group().transform({ translateX: barrierXpos * singleUnit / 0.1 }) });\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\t\tbarrierRef.current = g.polyline().fill('#005c56');\r\n\r\n\t\tconst textGroup = g.group();\r\n\t\ttextGroup.attr({ class: 'draggable' });\r\n\t\ttextGroup.circle(14).cx(0).cy(14 / 2 - 1).fill('#005c56');\r\n\t\tconst barrierText = textGroup.text('BARRIER').attr({ x: 5, y: -15 }).font({ anchor: 'middle', size: '12px' }).fill('#ffffff');\r\n\t\tconst barrierTextSize = barrierText.node.getBBox();\r\n\t\ttextGroup.rect(barrierTextSize.width + 10, barrierTextSize.height + 4)\r\n\t\t\t.transform({ translate: { x: barrierTextSize.x - 5, y: barrierTextSize.y - 2 } })\r\n\t\t\t.radius(5)\r\n\t\t\t.fill('#ef7521')\r\n\t\t\t.backward();\r\n\r\n\t\tlet boxAtDragStart;\r\n\t\ttextGroup.draggable()\r\n\t\t\t.on('dragstart', (e) => {\r\n\t\t\t\tboxAtDragStart = e.detail.box;\r\n\t\t\t})\r\n\t\t\t.on('dragmove', (e) => {\r\n\t\t\t\t// move while get source position + offset < receiver\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst { box } = e.detail;\r\n\t\t\t\tlet yOffset = g.transform('translateY');\r\n\t\t\t\tlet xOffset = g.transform('translateX');\r\n\t\t\t\tif (Math.abs(boxAtDragStart.y2 - box.y2) > 0) {\r\n\t\t\t\t\tyOffset += (box.y2 - box.y2 % singleUnit) - 24 / 2;\r\n\t\t\t\t}\r\n\t\t\t\tif (Math.abs(boxAtDragStart.x2 - box.x2) > 0) {\r\n\t\t\t\t\txOffset += box.w / 2 + (box.x - box.x2 % singleUnit) - 5 / 2;\r\n\t\t\t\t}\r\n\t\t\t\tconst xOffsetInMeters = Math.abs(xOffset * 0.1 / singleUnit).toFixed(1);\r\n\t\t\t\tsetBarrier1({\r\n\t\t\t\t\theight: yOffset > 0 ? 0 : Math.abs(yOffset * 0.1 / singleUnit).toFixed(1),\r\n\t\t\t\t\tdistance: xOffset < 0 ? 0 : (xOffsetInMeters > distance ? distance : xOffsetInMeters)\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tsetGRulerRef({ current: undefined });\r\n\t\t\tgParent.remove();\r\n\t\t};\r\n\t}, [distance]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// update line.\r\n\t\tif (barrierRef.current) {\r\n\t\t\tbarrierRef.current.plot(`-3 0\r\n\t\t\t-3 ${getUnitFromMeter(barrierHeight)}\r\n\t\t\t3 ${getUnitFromMeter(barrierHeight)}\r\n\t\t\t3 0`);\r\n\t\t}\r\n\t\tgRef.current.transform({\r\n\t\t\ttranslateY: -barrierHeight * singleUnit / 0.1,\r\n\t\t\ttranslateX: barrierXpos * singleUnit / 0.1\r\n\t\t});\r\n\t\tgRulerRef.current && gRulerRef.current.transform({\r\n\t\t\ttranslateX: barrierXpos * singleUnit / 0.1\r\n\t\t});\r\n\t}, [singleUnit, barrierHeight, barrierXpos]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{!gRulerRef.current ? null : (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport { FirstBarrier };","import { useEffect, useState, useRef, useCallback } from 'react';\r\nimport { SVG } from '@svgdotjs/svg.js';\r\n\r\nimport useStore from '../../store/store';\r\nimport { HeightRuler } from './common/HeightRuler';\r\n\r\nconst SecondBarrier = () => {\r\n\tconst gRef = useRef();\r\n\tconst [gRulerRef, setGRulerRef] = useState({ current: undefined });\r\n\tconst gParentRef = useRef();\r\n\tconst barrierRef = useRef();\r\n\tconst { height: barrierHeight, distance: barrierDistance } = useStore((state) => state.barrier2);\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\tconst getSingleUnit = useStore((state) => state.getSingleUnit);\r\n\tconst singleUnit = getSingleUnit();\r\n\tconst setBarrier2 = useStore((state) => state.setBarrier2);\r\n\tconst getfirstBarrierInitialPosition = useStore((state) => state.getfirstBarrierInitialPosition);\r\n\r\n\tconst onHeightChange = useCallback((newHeight) => {\r\n\t\tsetBarrier2({ height: newHeight });\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#barriers');\r\n\t\tconst gParent = gParentRef.current = draw.group().id('barrier2');\r\n\t\tconst { x, y } = getfirstBarrierInitialPosition();\r\n\r\n\t\tconst g = gRef.current = gParent.group();\r\n\t\tsetGRulerRef({ current: gParent.group().transform({ translateX: barrierDistance * singleUnit / 0.1 }) });\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\t\tbarrierRef.current = g.polyline().fill('#005c56');\r\n\r\n\t\tconst textGroup = g.group();\r\n\t\ttextGroup.attr({ class: 'draggable' });\r\n\t\ttextGroup.circle(14).cx(0).cy(14 / 2 - 1).fill('#005c56');\r\n\t\tconst barrierText = textGroup.text('BARRIER').attr({ x: 5, y: -15 }).font({ anchor: 'middle', size: '12px' }).fill('#ffffff');\r\n\t\tconst barrierTextSize = barrierText.node.getBBox();\r\n\t\ttextGroup.rect(barrierTextSize.width + 10, barrierTextSize.height + 4)\r\n\t\t\t.transform({ translate: { x: barrierTextSize.x - 5, y: barrierTextSize.y - 2 } })\r\n\t\t\t.radius(5)\r\n\t\t\t.fill('#ef7521')\r\n\t\t\t.backward();\r\n\r\n\t\tlet boxAtDragStart;\r\n\t\ttextGroup\r\n\t\t\t.draggable()\r\n\t\t\t.on('dragstart', (e) => {\r\n\t\t\t\tboxAtDragStart = e.detail.box;\r\n\t\t\t})\r\n\t\t\t.on('dragmove', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst { box } = e.detail;\r\n\t\t\t\tlet yOffset = g.transform('translateY');\r\n\t\t\t\tlet xOffset = g.transform('translateX');\r\n\t\t\t\tif (Math.abs(boxAtDragStart.y2 - box.y2) > 0) {\r\n\t\t\t\t\tyOffset += (box.y2 - box.y2 % singleUnit) - 24 / 2;\r\n\t\t\t\t}\r\n\t\t\t\tif (Math.abs(boxAtDragStart.x2 - box.x2) > 0) {\r\n\t\t\t\t\txOffset += box.w / 2 + (box.x - box.x2 % singleUnit) - 5 / 2;\r\n\t\t\t\t}\r\n\t\t\t\tconst xOffsetInMeters = Math.abs(xOffset * 0.1 / singleUnit).toFixed(1);\r\n\t\t\t\tsetBarrier2({\r\n\t\t\t\t\theight: yOffset > 0 ? 0 : Math.abs(yOffset * 0.1 / singleUnit).toFixed(1),\r\n\t\t\t\t\tdistance: xOffset < 0 ? 0 : (xOffsetInMeters > distance ? distance : xOffsetInMeters)\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tsetGRulerRef({ current: undefined });\r\n\t\t\tgParent.remove();\r\n\t\t};\r\n\t}, [distance]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// update line.\r\n\t\tif (barrierRef.current) {\r\n\t\t\tbarrierRef.current.plot(`-3 0\r\n\t\t\t-3 ${getUnitFromMeter(barrierHeight)}\r\n\t\t\t3 ${getUnitFromMeter(barrierHeight)}\r\n\t\t\t3 0`);\r\n\t\t}\r\n\t\tgRef.current.transform({\r\n\t\t\ttranslateY: -barrierHeight * singleUnit / 0.1,\r\n\t\t\ttranslateX: barrierDistance * singleUnit / 0.1\r\n\t\t});\r\n\t\tgRulerRef.current && gRulerRef.current.transform({\r\n\t\t\ttranslateX: barrierDistance * singleUnit / 0.1\r\n\t\t});\r\n\t}, [singleUnit, barrierHeight, barrierDistance]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{!gRulerRef.current ? null : (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport { SecondBarrier };","import { useEffect, useState, useRef, useCallback } from 'react';\r\nimport { SVG } from '@svgdotjs/svg.js';\r\n\r\nimport useStore from '../../store/store';\r\nimport { HeightRuler } from './common/HeightRuler';\r\n\r\nconst BuildingBarrier = () => {\r\n\tconst gRef = useRef();\r\n\tconst gParentRef = useRef();\r\n\tconst textGroupRef = useRef();\r\n\tconst barrierRef = useRef();\r\n\tconst closeBarrierHeightRef = useRef();\r\n\tconst farBarrierHeightRef = useRef();\r\n\tconst closeBarrierDistanceRef = useRef();\r\n\tconst farBarrierDistanceRef = useRef();\r\n\tconst leftCircleRef = useRef();\r\n\tconst rightCircleRef = useRef();\r\n\tconst [leftRulerRef, setLeftRulerRef] = useState({ current: undefined });\r\n\tconst [rightRulerRef, setRightRulerRef] = useState({ current: undefined });\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\tconst getSingleUnit = useStore((state) => state.getSingleUnit);\r\n\tconst singleUnit = getSingleUnit();\r\n\tconst setCloseBarrier = useStore((state) => state.setCloseBarrier);\r\n\tconst setFarBarrier = useStore((state) => state.setFarBarrier);\r\n\tconst setBarriers = useStore((state) => state.setBarriers);\r\n\tconst getfirstBarrierInitialPosition = useStore((state) => state.getfirstBarrierInitialPosition);\r\n\r\n\tconst [closeBarrierX, closeBarrierY, farBarrierX, farBarrierY] = useStore((state) => (\r\n\t\tNumber(state.barrier1.distance) <= Number(state.barrier2.distance)\r\n\t\t\t? [state.barrier1.distance, state.barrier1.height, state.barrier2.distance, state.barrier2.height]\r\n\t\t\t: [state.barrier2.distance, state.barrier2.height, state.barrier1.distance, state.barrier1.height]\r\n\t));\r\n\r\n\tconst onHeightChange = useCallback((newHeight) => {\r\n\t\tsetBarriers({ height: newHeight }, { height: newHeight });\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tcloseBarrierHeightRef.current = closeBarrierY;\r\n\t\tfarBarrierHeightRef.current = farBarrierY;\r\n\t}, [closeBarrierY, farBarrierY]);\r\n\r\n\tuseEffect(() => {\r\n\t\tcloseBarrierDistanceRef.current = closeBarrierX;\r\n\t\tfarBarrierDistanceRef.current = farBarrierX;\r\n\t}, [closeBarrierX, farBarrierX]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#barriers');\r\n\t\tconst gParent = gParentRef.current = draw.group().id('building-barrier');\r\n\t\tconst { x, y } = getfirstBarrierInitialPosition();\r\n\r\n\t\tconst g = gRef.current = gParent.group();\r\n\t\tsetRightRulerRef({ current: gParent.group().transform({ translateX: farBarrierX * singleUnit / 0.1 }) });\r\n\t\tsetLeftRulerRef({ current: gParent.group().transform({ translateX: closeBarrierX * singleUnit / 0.1 }) });\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\r\n\t\tbarrierRef.current = g.polyline().fill('#ddd').stroke({ width: 3, color: '#005c56', linejoin: 'round' });\r\n\r\n\t\tconst textGroup = textGroupRef.current = g.group();\r\n\t\ttextGroup.transform({\r\n\t\t\ttranslateX: getUnitFromMeter(closeBarrierX + Number(farBarrierX) - Number(closeBarrierX)),\r\n\t\t\ttranslateY: -getUnitFromMeter(closeBarrierY)\r\n\t\t}).attr({ class: 'draggable' });\r\n\t\ttextGroup.circle(6).cx(0).cy(0).fill('#005c56');\r\n\t\tconst buildingText = textGroup.text('BUILDING').transform({ translate: { x: 0, y: -15 } }).font({ anchor: 'middle', size: '12px' }).fill('#ffffff')\r\n\t\tconst buildingTextSize = buildingText.node.getBBox();\r\n\t\ttextGroup.rect(buildingTextSize.width + 10, buildingTextSize.height + 4)\r\n\t\t\t.transform({ translate: { x: buildingTextSize.x - 5, y: buildingTextSize.y - 17 } })\r\n\t\t\t.radius(5)\r\n\t\t\t.fill('#ef7521')\r\n\t\t\t.backward();\r\n\t\tlet boxAtDragStart;\r\n\t\ttextGroup\r\n\t\t\t.draggable()\r\n\t\t\t.on('dragstart', (e) => {\r\n\t\t\t\tboxAtDragStart = e.detail.box;\r\n\t\t\t})\r\n\t\t\t.on('dragmove', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst { box } = e.detail;\r\n\r\n\t\t\t\tif (Math.abs(boxAtDragStart.y2 - box.y2) > 0) {\r\n\t\t\t\t\tconst yOffset = box.y2 - box.y2 % singleUnit;\r\n\t\t\t\t\tconst yOffsetInMeters = Number((yOffset * 0.1 / singleUnit).toFixed(1));\r\n\r\n\t\t\t\t\tlet closeBarrierNewHeight = Number(closeBarrierHeightRef.current) - yOffsetInMeters;\r\n\t\t\t\t\tlet farBarrierNewHeight = Number(farBarrierHeightRef.current) - yOffsetInMeters;\r\n\r\n\t\t\t\t\tif (closeBarrierNewHeight < 0 && closeBarrierNewHeight <= farBarrierNewHeight) {\r\n\t\t\t\t\t\tconst newOffset = Number(closeBarrierHeightRef.current).toFixed(1);\r\n\t\t\t\t\t\tcloseBarrierNewHeight = 0;\r\n\t\t\t\t\t\tfarBarrierNewHeight = Number(farBarrierHeightRef.current) - newOffset;\r\n\t\t\t\t\t} else if (farBarrierNewHeight < 0) {\r\n\t\t\t\t\t\tconst newOffset = Number(farBarrierHeightRef.current).toFixed(1);\r\n\t\t\t\t\t\tcloseBarrierNewHeight = Number(closeBarrierHeightRef.current) - newOffset;\r\n\t\t\t\t\t\tfarBarrierNewHeight = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsetBarriers({ height: closeBarrierNewHeight }, { height: farBarrierNewHeight });\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Math.abs(boxAtDragStart.x2 - box.x2) > 0) {\r\n\t\t\t\t\tconst xOffset = box.x2 - box.x2 % singleUnit - box.w / 2;\r\n\t\t\t\t\tconst offsetInMeters = Number((xOffset * 0.1 / singleUnit).toFixed(1));\r\n\r\n\t\t\t\t\tlet closeBarrierNewDistance = Number(closeBarrierDistanceRef.current) + offsetInMeters;\r\n\t\t\t\t\tlet farBarrierNewDistance = Number(farBarrierDistanceRef.current) + offsetInMeters;\r\n\r\n\t\t\t\t\tif (closeBarrierNewDistance < 0) {\r\n\t\t\t\t\t\tconst newOffset = Number(closeBarrierNewDistance) - offsetInMeters;\r\n\t\t\t\t\t\tcloseBarrierNewDistance = 0;\r\n\t\t\t\t\t\tfarBarrierNewDistance = Number(farBarrierDistanceRef.current) - newOffset;\r\n\t\t\t\t\t} else if (farBarrierNewDistance > distance) {\r\n\t\t\t\t\t\tconst newOffset = Number(farBarrierNewDistance) - distance;\r\n\t\t\t\t\t\tcloseBarrierNewDistance = (Number(closeBarrierNewDistance) - newOffset).toFixed(1);\r\n\t\t\t\t\t\tfarBarrierNewDistance = distance;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsetBarriers({ distance: closeBarrierNewDistance }, { distance: farBarrierNewDistance });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\tconst leftCircle = leftCircleRef.current = g.group();\r\n\t\tleftCircle.transform({\r\n\t\t\ttranslateX: getUnitFromMeter(closeBarrierX),\r\n\t\t\ttranslateY: -getUnitFromMeter(closeBarrierY)\r\n\t\t}).attr({ class: 'draggable' });\r\n\t\tleftCircle.rect(16, 16).transform({ translate: { x: -8, y: -8 } }).opacity(0);\r\n\t\tleftCircle.circle(8).cx(0).cy(0).fill('#005c56');\r\n\t\tleftCircle\r\n\t\t\t.draggable()\r\n\t\t\t.on('dragmove', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst { box } = e.detail;\r\n\t\t\t\tconst newOffset = leftCircle.transform('translateY') + (box.y2 - box.y2 % singleUnit) - box.h / 2;\r\n\t\t\t\tsetCloseBarrier({ height: newOffset > 0 ? 0 : Math.abs(newOffset * 0.1 / singleUnit).toFixed(1) });\r\n\t\t\t});\r\n\r\n\t\tconst rightCircle = rightCircleRef.current = g.group();\r\n\t\trightCircle.transform({\r\n\t\t\ttranslateX: getUnitFromMeter(farBarrierX),\r\n\t\t\ttranslateY: -getUnitFromMeter(farBarrierY)\r\n\t\t}).attr({ class: 'draggable' });\r\n\t\trightCircle.rect(16, 16).transform({ translate: { x: -8, y: -8 } }).opacity(0);\r\n\t\trightCircle.circle(8).cx(0).cy(0).fill('#005c56');\r\n\t\trightCircle\r\n\t\t\t.draggable()\r\n\t\t\t.on('dragmove', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst { box } = e.detail;\r\n\t\t\t\tconst newOffset = rightCircle.transform('translateY') + (box.y2 - box.y2 % singleUnit) - box.h / 2;\r\n\t\t\t\tsetFarBarrier({ height: newOffset > 0 ? 0 : Math.abs(newOffset * 0.1 / singleUnit).toFixed(1) });\r\n\t\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tsetRightRulerRef({ current: undefined });\r\n\t\t\tsetLeftRulerRef({ current: undefined });\r\n\t\t\tgParent.remove();\r\n\t\t};\r\n\t}, [distance]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// update line.\r\n\t\tif (barrierRef.current) {\r\n\t\t\tbarrierRef.current.plot(`\r\n\t\t\t\t${getUnitFromMeter(closeBarrierX)} 0\r\n\t\t\t\t${getUnitFromMeter(closeBarrierX)} -${getUnitFromMeter(closeBarrierY)}\r\n\t\t\t\t${getUnitFromMeter(farBarrierX)} -${getUnitFromMeter(farBarrierY)}\r\n\t\t\t\t${getUnitFromMeter(farBarrierX)} 0\r\n\t\t\t`);\r\n\t\t}\r\n\t\tif (textGroupRef.current) {\r\n\t\t\tconst smallBarrier = Number(farBarrierY) > Number(closeBarrierY) ? closeBarrierY : farBarrierY;\r\n\t\t\ttextGroupRef.current.transform({\r\n\t\t\t\ttranslateY: -(Number(smallBarrier) + (Math.abs(farBarrierY - closeBarrierY) / 2)) * singleUnit / 0.1,\r\n\t\t\t\ttranslateX: (farBarrierX - (farBarrierX - closeBarrierX) / 2) * singleUnit / 0.1\r\n\t\t\t});\r\n\t\t}\r\n\t\trightRulerRef.current && rightRulerRef.current.transform({\r\n\t\t\ttranslateX: farBarrierX * singleUnit / 0.1\r\n\t\t});\r\n\t\tleftRulerRef.current && leftRulerRef.current.transform({\r\n\t\t\ttranslateX: closeBarrierX * singleUnit / 0.1\r\n\t\t});\r\n\t\trightCircleRef.current && rightCircleRef.current.transform({\r\n\t\t\ttranslateX: getUnitFromMeter(farBarrierX),\r\n\t\t\ttranslateY: -getUnitFromMeter(farBarrierY)\r\n\t\t});\r\n\t\tleftCircleRef.current && leftCircleRef.current.transform({\r\n\t\t\ttranslateX: getUnitFromMeter(closeBarrierX),\r\n\t\t\ttranslateY: -getUnitFromMeter(closeBarrierY)\r\n\t\t});\r\n\t}, [singleUnit, closeBarrierX, closeBarrierY, farBarrierX, farBarrierY]);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{!rightRulerRef.current ? null : (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{!leftRulerRef.current ? null : (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport { BuildingBarrier };","import { useEffect, useRef, useMemo } from 'react';\r\nimport { SVG } from '@svgdotjs/svg.js';\r\n\r\nimport useStore from '../../../store/store';\r\nimport { IntersectionCoordinates } from '../../../utility';\r\n\r\nconst Shadow = ({ x0, y0, x1, y1 }) => {\r\n\tconst polygonRef = useRef();\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#shadows');\r\n\t\tpolygonRef.current = draw.polygon().fill('#ef7521').back().opacity('0.3');\r\n\t\treturn () => polygonRef.current.remove();\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst { x, y } = IntersectionCoordinates(\r\n\t\t\t{ x0, y0 },\r\n\t\t\t{ x1, y1 },\r\n\t\t\t{ x: distance + distance * 12.5 / 75 }\r\n\t\t);\r\n\r\n\t\tpolygonRef.current.plot(`\r\n\t\t\t${getUnitFromMeter(x1)},0\r\n\t\t\t${getUnitFromMeter(x1)},${-getUnitFromMeter(y1)}\r\n\t\t\t${getUnitFromMeter(x)},${-(y === Infinity ? 100000 : (y === -Infinity ? -10000 : getUnitFromMeter(y)))}\r\n\t\t\t${getUnitFromMeter(x)},0\r\n\t\t`);\r\n\t}, [distance, x0, y0, x1, y1]);\r\n\r\n\treturn null;\r\n};\r\n\r\nconst Shadows = () => {\r\n\tconst getSoundSourcePosition = useStore((state) => state.getSoundSourcePosition);\r\n\tconst [x0, y0] = useStore((state) => [0, state.sourceHeight]);\r\n\tconst [closeBarrierX, closeBarrierY, farBarrierX, farBarrierY] = useStore((state) => (\r\n\t\tNumber(state.barrier1.distance) <= Number(state.barrier2.distance) || state.scenario === 'singleBarrier'\r\n\t\t\t? [state.barrier1.distance, state.barrier1.height, state.barrier2.distance, state.barrier2.height]\r\n\t\t\t: [state.barrier2.distance, state.barrier2.height, state.barrier1.distance, state.barrier1.height]\r\n\t));\r\n\r\n\tconst scenario = useStore((state) => state.scenario);\r\n\tconst isFarBarrierUnderCloseBarrier = useMemo(() => {\r\n\t\tconst { y } = IntersectionCoordinates(\r\n\t\t\t{ x0, y0 },\r\n\t\t\t{ x1: closeBarrierX, y1: closeBarrierY },\r\n\t\t\t{ x: farBarrierX }\r\n\t\t);\r\n\r\n\t\treturn Number(y) - Number(farBarrierY) > 0;\r\n\t}, [x0, y0, closeBarrierX, closeBarrierY, farBarrierX, farBarrierY]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst shadows = SVG('#shadows');\r\n\t\tconst { x, y } = getSoundSourcePosition();\r\n\t\tshadows.transform({ translateX: x, translateY: y });\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{scenario !== 'noBarriers' && !(scenario === 'building' && !isFarBarrierUnderCloseBarrier) && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{(scenario === 'doubleBarrier' || scenario === 'building') && (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport { Shadows };","import { useEffect, useRef } from 'react';\r\nimport { SVG } from '@svgdotjs/svg.js';\r\n\r\nimport useStore from '../../store/store';\r\nimport { FixedNumber } from '../../utility';\r\nimport { useModal } from '../../ModalContext';\r\n\r\nconst FullRuler = () => {\r\n\tconst groupRef = useRef();\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst setDistance = useStore((state) => state.setDistance);\r\n\tconst getSoundSourcePosition = useStore((state) => state.getSoundSourcePosition);\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\tconst triggerModal = useModal();\r\n\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#rulers');\r\n\r\n\t\tconst gParent = draw.group();\r\n\t\tconst { x, y } = getSoundSourcePosition();\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\r\n\t\tconst g = groupRef.current = gParent.group().attr({ class: 'clickable' }).transform({ translateY: 50 });\r\n\t\tg.polyline().stroke({ color: '#ffffff', width: '2' }).id('line');\r\n\t\tg.text().font({ anchor: 'middle', fill: '#ffffff' }).id('text');\r\n\t\tg.rect().fill('transparent').transform({ translate: { y: -5 } }).id('rect');\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tgroupRef.current.findOne('#line')\r\n\t\t\t.plot(`0,0 ${getUnitFromMeter(distance)},0`);\r\n\t\tgroupRef.current.findOne('#text')\r\n\t\t\t.text(`${distance}m`)\r\n\t\t\t.font({ fill: '#ffffff' })\r\n\t\t\t.transform({ translate: { x: getUnitFromMeter(distance) / 2, y: 18 } });\r\n\t\tgroupRef.current.findOne('#rect').attr({\r\n\t\t\twidth: getUnitFromMeter(distance),\r\n\t\t\theight: '12px',\r\n\t\t});\r\n\t}, [distance]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst onSave = (newValue) => setDistance(newValue);\r\n\r\n\t\tgroupRef.current.click(() => triggerModal(\r\n\t\t\t'D:',\r\n\t\t\tdistance,\r\n\t\t\tonSave,\r\n\t\t\tgroupRef.current.findOne('#text').node\r\n\t\t));\r\n\t\treturn () => groupRef.current.click(null);\r\n\t}, [distance]);\r\n\r\n\treturn null;\r\n};\r\n\r\nconst SourceToBarrierRuler = () => {\r\n\tconst gParentRef = useRef();\r\n\tconst sourceToFirstBarrierGroup = useRef();\r\n\tconst triggerModal = useModal();\r\n\r\n\t// store refs\r\n\tconst getSoundSourcePosition = useStore((state) => state.getSoundSourcePosition);\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\tconst barrierXpos = useStore((state) =>\r\n\t\tNumber(state.barrier1.distance) <= Number(state.barrier2.distance) || state.scenario === 'singleBarrier'\r\n\t\t\t? state.barrier1.distance : state.barrier2.distance\r\n\t);\r\n\tconst setGroundDistances = useStore((state) => state.setGroundDistances);\r\n\r\n\t// Position component\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#rulers');\r\n\t\tconst { x, y } = getSoundSourcePosition();\r\n\t\tconst gParent = gParentRef.current = draw.group();\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\r\n\t\tconst g = gParent.group().transform({ translateY: 30 });\r\n\r\n\t\tconst g1 = sourceToFirstBarrierGroup.current = g.group().attr({ class: 'clickable' });\r\n\t\tg1.text().font({ anchor: 'middle', fill: '#ffffff' }).id('text');\r\n\t\tconst lineGroup = g1.group().transform({ rotate: -90 }).id('line-group1');\r\n\t\tlineGroup.polyline().stroke({ color: '#ffffff', width: 1 }).id('line');\r\n\t\tlineGroup.polygon('0 0 -3 5 3 5').transform({ translateY: -1, scale: 0.8 }).fill('#ffffff').id('left-arrow');\r\n\t\tlineGroup.polygon('0 0 -3 -5 3 -5').transform({ translateY: 1, scale: 0.8 }).fill('#ffffff').id('right-arrow');\r\n\t\tg1.rect().fill('transparent').id('rect');\r\n\r\n\t\treturn () => {\r\n\t\t\tgParent.remove();\r\n\t\t};\r\n\t}, []);\r\n\r\n\t// Update component\r\n\tuseEffect(() => {\r\n\t\tsourceToFirstBarrierGroup.current.findOne('#line').plot(`0,0 0,${getUnitFromMeter(barrierXpos)}`);\r\n\t\tsourceToFirstBarrierGroup.current.findOne('#text').text(`${FixedNumber(barrierXpos)}m`).transform({ translate: { x: getUnitFromMeter(barrierXpos) / 2, y: -10 } });\r\n\t\tsourceToFirstBarrierGroup.current.findOne('#right-arrow').transform({ scale: 0.8, translateY: getUnitFromMeter(barrierXpos) + 1 });\r\n\t\tsourceToFirstBarrierGroup.current.findOne('#rect')\r\n\t\t\t.attr({\r\n\t\t\t\twidth: getUnitFromMeter(barrierXpos),\r\n\t\t\t\theight: '12px',\r\n\t\t\t})\r\n\t\t\t.transform({ translate: { y: -6 } });\r\n\t}, [distance, barrierXpos]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst onSave = (newValue) => {\r\n\t\t\tsetGroundDistances({ sourceToBarrier: newValue });\r\n\t\t};\r\n\r\n\t\tsourceToFirstBarrierGroup.current.click(() => triggerModal(\r\n\t\t\t'D:',\r\n\t\t\tFixedNumber(barrierXpos),\r\n\t\t\tonSave,\r\n\t\t\tsourceToFirstBarrierGroup.current.findOne('#text').node\r\n\t\t));\r\n\r\n\t\treturn () => sourceToFirstBarrierGroup.current.click(null);\r\n\t}, [sourceToFirstBarrierGroup.current, barrierXpos]);\r\n\r\n\treturn null;\r\n}\r\nconst BarrierToBarrierRuler = () => {\r\n\t// element refs\r\n\tconst gParentRef = useRef();\r\n\tconst barrierToBarrierGroup = useRef();\r\n\tconst triggerModal = useModal();\r\n\r\n\t// store refs\r\n\tconst getSoundSourcePosition = useStore((state) => state.getSoundSourcePosition);\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\tconst [closeBarrierX, farBarrierX] = useStore((state) =>\r\n\t\tNumber(state.barrier1.distance) > Number(state.barrier2.distance)\r\n\t\t\t? [state.barrier2.distance, state.barrier1.distance] : [state.barrier1.distance, state.barrier2.distance]\r\n\t);\r\n\tconst setGroundDistances = useStore((state) => state.setGroundDistances);\r\n\r\n\t// Position component\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#rulers');\r\n\t\tconst { x, y } = getSoundSourcePosition();\r\n\t\tconst gParent = gParentRef.current = draw.group();\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\r\n\t\tconst g = gParent.group().transform({ translateY: 30 });\r\n\r\n\t\tconst g2 = barrierToBarrierGroup.current = g.group()\r\n\t\t\t.attr({ class: 'clickable' })\r\n\t\t\t.transform({ translateX: getUnitFromMeter(closeBarrierX) });\r\n\t\tg2.text().font({ anchor: 'middle', fill: '#ffffff' }).id('text');\r\n\t\tconst lineGroup2 = g2.group().transform({ rotate: -90 }).id('line-group');\r\n\t\tlineGroup2.polyline().stroke({ color: '#ffffff', width: '1' }).id('line');\r\n\t\tlineGroup2.polygon('0 0 -3 5 3 5').transform({ translateY: -1, scale: 0.8 }).fill('#ffffff').id('left-arrow');\r\n\t\tlineGroup2.polygon('0 0 -3 -5 3 -5').transform({ translateY: 1, scale: 0.8 }).fill('#ffffff').id('right-arrow');\r\n\t\tg2.rect().fill('transparent').id('rect');\r\n\r\n\t\treturn () => {\r\n\t\t\tgParent.remove();\r\n\t\t};\r\n\t}, []);\r\n\r\n\t// Update component\r\n\tuseEffect(() => {\r\n\t\tbarrierToBarrierGroup.current.transform({ translateX: getUnitFromMeter(closeBarrierX) });\r\n\t\tbarrierToBarrierGroup.current.findOne('#line').plot(`0,0 0,${getUnitFromMeter(farBarrierX - closeBarrierX)}`);\r\n\t\tbarrierToBarrierGroup.current.findOne('#text').text(`${FixedNumber(farBarrierX - closeBarrierX)}m`).transform({ translate: { x: getUnitFromMeter(farBarrierX - closeBarrierX) / 2, y: -10 } });\r\n\t\tbarrierToBarrierGroup.current.findOne('#right-arrow').transform({ scale: 0.8, translateY: getUnitFromMeter(farBarrierX - closeBarrierX) + 1 });\r\n\t\tbarrierToBarrierGroup.current.findOne('#rect')\r\n\t\t\t.attr({\r\n\t\t\t\twidth: getUnitFromMeter(farBarrierX - closeBarrierX),\r\n\t\t\t\theight: '12px',\r\n\t\t\t})\r\n\t\t\t.transform({ translate: { y: -6 } });\r\n\t}, [distance, closeBarrierX, farBarrierX]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst onSave = (newValue) => {\r\n\t\t\tsetGroundDistances({ barrierToBarrier: newValue });\r\n\t\t};\r\n\r\n\t\tbarrierToBarrierGroup.current.click(() => triggerModal(\r\n\t\t\t'D:',\r\n\t\t\tFixedNumber(farBarrierX - closeBarrierX),\r\n\t\t\tonSave,\r\n\t\t\tbarrierToBarrierGroup.current.findOne('#text').node\r\n\t\t));\r\n\t\treturn () => barrierToBarrierGroup.current.click(null);\r\n\t}, [barrierToBarrierGroup.current, farBarrierX, closeBarrierX]);\r\n\r\n\treturn null;\r\n};\r\n\r\nconst BarrierToReceiver = () => {\r\n\t// element refs\r\n\tconst gParentRef = useRef();\r\n\tconst secondBarrierToReceiverGroup = useRef();\r\n\tconst triggerModal = useModal();\r\n\r\n\t// store refs\r\n\tconst getSoundSourcePosition = useStore((state) => state.getSoundSourcePosition);\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\tconst barrierXpos = useStore((state) =>\r\n\t\tNumber(state.barrier1.distance) > Number(state.barrier2.distance) || state.scenario === 'singleBarrier'\r\n\t\t\t? state.barrier1.distance : state.barrier2.distance\r\n\t);\r\n\tconst setGroundDistances = useStore((state) => state.setGroundDistances);\r\n\r\n\t// Position component\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#rulers');\r\n\t\tconst { x, y } = getSoundSourcePosition();\r\n\t\tconst gParent = gParentRef.current = draw.group();\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\r\n\t\tconst g = gParent.group().transform({ translateY: 30 });\r\n\r\n\t\tconst g2 = secondBarrierToReceiverGroup.current = g.group()\r\n\t\t\t.attr({ class: 'clickable' })\r\n\t\t\t.transform({ translateX: getUnitFromMeter(barrierXpos) });\r\n\t\tg2.text().font({ anchor: 'middle' }).id('text');\r\n\t\tconst lineGroup2 = g2.group().transform({ rotate: -90 }).id('line-group');\r\n\t\tlineGroup2.polyline().stroke({ color: '#ffffff', width: '1' }).id('line');\r\n\t\tlineGroup2.polygon('0 0 -3 5 3 5').transform({ translateY: -1, scale: 0.8 }).fill('#ffffff').id('left-arrow');\r\n\t\tlineGroup2.polygon('0 0 -3 -5 3 -5').transform({ translateY: 1, scale: 0.8 }).fill('#ffffff').id('right-arrow');\r\n\t\tg2.rect().fill('transparent').id('rect');\r\n\r\n\t\treturn () => {\r\n\t\t\tgParent.remove();\r\n\t\t};\r\n\t}, []);\r\n\r\n\t// Update component\r\n\tuseEffect(() => {\r\n\t\tsecondBarrierToReceiverGroup.current.transform({ translateX: getUnitFromMeter(barrierXpos) });\r\n\t\tsecondBarrierToReceiverGroup.current.findOne('#line').plot(`0,0 0,${getUnitFromMeter(distance - barrierXpos)}`);\r\n\t\tsecondBarrierToReceiverGroup.current.findOne('#text').text(`${FixedNumber(distance - barrierXpos)}m`).transform({ translate: { x: getUnitFromMeter(distance - barrierXpos) / 2, y: -10 } }).fill('#ffffff');\r\n\t\tsecondBarrierToReceiverGroup.current.findOne('#right-arrow').transform({ scale: 0.8, translateY: getUnitFromMeter(distance - barrierXpos) + 1 });\r\n\t\tsecondBarrierToReceiverGroup.current.findOne('#rect')\r\n\t\t\t.attr({\r\n\t\t\t\twidth: getUnitFromMeter(distance - barrierXpos),\r\n\t\t\t\theight: '12px',\r\n\t\t\t})\r\n\t\t\t.transform({ translate: { y: -6 } });\r\n\t}, [distance, barrierXpos]);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst onSave = (newValue) => {\r\n\t\t\tsetGroundDistances({ barrierToReceiver: newValue });\r\n\t\t};\r\n\r\n\t\tsecondBarrierToReceiverGroup.current.click(() => triggerModal(\r\n\t\t\t'D:',\r\n\t\t\tFixedNumber(distance - barrierXpos),\r\n\t\t\tonSave,\r\n\t\t\tsecondBarrierToReceiverGroup.current.findOne('#text').node\r\n\t\t));\r\n\t\treturn () => secondBarrierToReceiverGroup.current.click(null);\r\n\t}, [secondBarrierToReceiverGroup.current, distance, barrierXpos]);\r\n\r\n\treturn null;\r\n}\r\n\r\nconst Ground = () => {\r\n\tconst viewBoxWidth = useStore((state) => state.view.width);\r\n\tconst groundHeight = useStore((state) => state.groundHeight);\r\n\tconst scenario = useStore((state) => state.scenario);\r\n\tconst getGroundY = useStore((state) => state.getGroundY);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#ground');\r\n\r\n\t\tconst g = draw.group();\r\n\t\tg.transform({ translateX: 0, translateY: getGroundY() });\r\n\t\t// #ef7521\r\n\t\t// #FF895C\r\n\t\t// #2F4858\r\n\r\n\t\tg.rect(viewBoxWidth, groundHeight).fill('#ef7521');\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{scenario !== 'noBarriers' && }\r\n\t\t\t\t{scenario !== 'noBarriers' && scenario !== 'singleBarrier' && }\r\n\t\t\t\t{scenario !== 'noBarriers' && }\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport { Ground };","import { useEffect, useRef } from 'react';\r\nimport { SVG } from '@svgdotjs/svg.js';\r\n\r\nimport useStore from '../../store/store';\r\n\r\nconst CircleGrid = () => {\r\n\tconst gRef = useRef();\r\n\r\n\tconst sourceHeight = useStore((state) => state.sourceHeight);\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst getSoundSourcePosition = useStore((state) => state.getSoundSourcePosition);\r\n\tconst getSingleUnit = useStore((state) => state.getSingleUnit);\r\n\tconst singleUnit = getSingleUnit();\r\n\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#grid');\r\n\r\n\t\tconst gParent = draw.group();\r\n\t\tconst { x, y } = getSoundSourcePosition();\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\t\tconst g = gRef.current = gParent.group();\r\n\r\n\t\tconst circleGroup = g.group();\r\n\t\tconst textGroup = g.group();\r\n\r\n\t\tconst oneMeter = (getSingleUnit() / 0.1) * 2;\r\n\r\n\t\tlet unit = 1;\r\n\t\tif (distance > 25000) unit = 1000;\r\n\t\telse if (distance > 2500) unit = 100;\r\n\t\telse if (distance > 200) unit = 10;\r\n\t\tconst showTextOnlyEvery10 = distance * 130 / 100 / unit > 80;\r\n\r\n\t\tfor (let i = 0, count = 0; i <= distance * 130 / 100; i += unit, count++) {\r\n\t\t\tlet circleStroke = 1, circleColor = '#f9f9f9';\r\n\t\t\tconst isTenthCircle = count % 10 === 0;\r\n\t\t\tif (isTenthCircle) {\r\n\t\t\t\tcircleStroke = 2;\r\n\t\t\t\tcircleColor = '#fff';\r\n\t\t\t}\r\n\t\t\tcircleGroup\r\n\t\t\t\t.circle(oneMeter * i).cx(0).cy(0)\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t'stroke': circleColor,\r\n\t\t\t\t\t'stroke-width': circleStroke,\r\n\t\t\t\t\t'fill': 'none'\r\n\t\t\t\t});\r\n\r\n\t\t\tif (i !== 0 && (!showTextOnlyEvery10 || (showTextOnlyEvery10 && count % 10 === 0))) {\r\n\t\t\t\tconst text1 = textGroup\r\n\t\t\t\t\t.text(`${Math.abs((oneMeter * i / 2) * 0.1 / singleUnit).toFixed(0)}m`)\r\n\t\t\t\t\t.attr({ y: -(oneMeter * i / 2 - 2) })\r\n\t\t\t\t\t.font({ anchor: 'middle', size:'10px' })\r\n\t\t\t\t\t.fill(isTenthCircle ? '#666' : '#999');\r\n\r\n\t\t\t\tconst rectSize1 = text1.node.getBBox();\r\n\t\t\t\ttextGroup\r\n\t\t\t\t\t.rect(rectSize1.width, rectSize1.height)\r\n\t\t\t\t\t.transform({ translate: { x: rectSize1.x, y: rectSize1.y }})\r\n\t\t\t\t\t.fill('#e2e7e6')\r\n\t\t\t\t\t.backward();\r\n\r\n\t\t\t\tconst text2 = textGroup\r\n\t\t\t\t\t.text(`${Math.abs((oneMeter * i / 2) * 0.1 / singleUnit).toFixed(0)}m`)\r\n\t\t\t\t\t.attr({ y: oneMeter * i / 2 + 2 })\r\n\t\t\t\t\t.font({ anchor: 'middle', size:'10px' })\r\n\t\t\t\t\t.fill(isTenthCircle ? '#666' : '#999');\r\n\r\n\t\t\t\tconst rectSize2 = text2.node.getBBox();\r\n\t\t\t\ttextGroup\r\n\t\t\t\t\t.rect(rectSize2.width, rectSize2.height)\r\n\t\t\t\t\t.transform({ translate: { x: rectSize2.x, y: rectSize2.y }})\r\n\t\t\t\t\t.fill('#e2e7e6')\r\n\t\t\t\t\t.backward();\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn () => {\r\n\t\t\tgParent.remove();\r\n\t\t};\r\n\t}, [singleUnit]);\r\n\r\n\tuseEffect(() => {\r\n\t\tgRef.current.transform({\r\n\t\t\ttranslateY: -sourceHeight * singleUnit / 0.1\r\n\t\t});\r\n\t}, [singleUnit, sourceHeight]);\r\n\r\n\treturn null;\r\n};\r\n\r\nconst SquareGrid = () => {\r\n\tconst gRef = useRef();\r\n\r\n\tconst sourceHeight = useStore((state) => state.sourceHeight);\r\n\tconst distance = useStore((state) => state.distance);\r\n\tconst getSoundSourcePosition = useStore((state) => state.getSoundSourcePosition);\r\n\tconst getSingleUnit = useStore((state) => state.getSingleUnit);\r\n\tconst getUnitFromMeter = useStore((state) => state.getUnitFromMeter);\r\n\tconst singleUnit = getSingleUnit();\r\n\r\n\tuseEffect(() => {\r\n\t\tconst draw = SVG('#grid');\r\n\r\n\t\tconst gParent = draw.group();\r\n\t\tconst { x, y } = getSoundSourcePosition();\r\n\t\tgParent.transform({ translateX: x, translateY: y });\r\n\t\tconst g = gRef.current = gParent.group();\r\n\r\n\t\tconst linesGroup = g.group();\r\n\t\tconst textGroup = g.group();\r\n\r\n\t\tconst oneMeter = (getSingleUnit() / 0.1);\r\n\r\n\t\tlet unit = 1;\r\n\t\tif (distance >= 60000) unit = 10000;\r\n\t\telse if (distance >= 6000) unit = 1000;\r\n\t\telse if (distance >= 750) unit = 100;\r\n\t\telse if (distance > 78) unit = 10;\r\n\t\tconst showTextOnlyEvery10 = distance / unit > 30;\r\n\r\n\t\tfor (let i = 0, count = 0; i <= distance; i += unit, count++) {\r\n\t\t\tlet lineStroke = 1, lineColor = '#f9f9f9', dashArray = '2,4';\r\n\t\t\tconst isTenthLine = count % 10 === 0;\r\n\t\t\tif (isTenthLine) {\r\n\t\t\t\tlineStroke = 2;\r\n\t\t\t\tlineColor = '#fff';\r\n\t\t\t\tdashArray = '1,2';\r\n\t\t\t}\r\n\t\t\tlinesGroup\r\n\t\t\t\t.line(i * oneMeter, -getUnitFromMeter(distance), i * oneMeter, getUnitFromMeter(distance))\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t'stroke': lineColor,\r\n\t\t\t\t\t'stroke-width': lineStroke,\r\n\t\t\t\t\t'stroke-dasharray': dashArray,\r\n\t\t\t\t\t'fill': 'none'\r\n\t\t\t\t});\r\n\t\t\tlinesGroup\r\n\t\t\t\t.line(0, i * oneMeter, getUnitFromMeter(distance), i * oneMeter)\r\n\t\t\t\t.attr({\r\n\t\t\t\t\t'stroke': lineColor,\r\n\t\t\t\t\t'stroke-width': lineStroke,\r\n\t\t\t\t\t'stroke-dasharray': dashArray,\r\n\t\t\t\t\t'fill': 'none'\r\n\t\t\t\t});\r\n\r\n\t\t\tif (i !== 0) {\r\n\t\t\t\tlinesGroup\r\n\t\t\t\t\t.line(0, -i * oneMeter, getUnitFromMeter(distance), -i * oneMeter)\r\n\t\t\t\t\t.attr({\r\n\t\t\t\t\t\t'stroke': lineColor,\r\n\t\t\t\t\t\t'stroke-width': lineStroke,\r\n\t\t\t\t\t\t'stroke-dasharray': dashArray,\r\n\t\t\t\t\t\t'fill': 'none'\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (i !== 0 && (!showTextOnlyEvery10 || (showTextOnlyEvery10 && count % 10 === 0))) {\r\n\t\t\t\tconst text1 = textGroup\r\n\t\t\t\t\t.text(`${Math.abs((oneMeter * i) * 0.1 / singleUnit).toFixed(0)}m`)\r\n\t\t\t\t\t.attr({ y: -(oneMeter * i - 3) })\r\n\t\t\t\t\t.font({ anchor: 'middle', size:'10px' })\r\n\t\t\t\t\t.fill(isTenthLine ? '#666' : '#999');\r\n\r\n\t\t\t\tconst rectSize1 = text1.node.getBBox();\r\n\t\t\t\ttextGroup\r\n\t\t\t\t\t.rect(rectSize1.width, rectSize1.height)\r\n\t\t\t\t\t.transform({ translate: { x: rectSize1.x, y: rectSize1.y }})\r\n\t\t\t\t\t.fill('#e2e7e6')\r\n\t\t\t\t\t.backward();\r\n\r\n\t\t\t\tconst text2 = textGroup\r\n\t\t\t\t\t.text(`${Math.abs((oneMeter * i) * 0.1 / singleUnit).toFixed(0)}m`)\r\n\t\t\t\t\t.attr({ y: oneMeter * i + 2 })\r\n\t\t\t\t\t.font({ anchor: 'middle', size:'10px' })\r\n\t\t\t\t\t.fill(isTenthLine ? '#666' : '#999');\r\n\r\n\t\t\t\tconst rectSize2 = text2.node.getBBox();\r\n\t\t\t\ttextGroup\r\n\t\t\t\t\t.rect(rectSize2.width, rectSize2.height)\r\n\t\t\t\t\t.transform({ translate: { x: rectSize2.x, y: rectSize2.y }})\r\n\t\t\t\t\t.fill('#e2e7e6')\r\n\t\t\t\t\t.backward();\r\n\r\n\t\t\t\tconst text3 = textGroup\r\n\t\t\t\t\t.text(`${Math.abs((oneMeter * i) * 0.1 / singleUnit).toFixed(0)}m`)\r\n\t\t\t\t\t.attr({ x: getUnitFromMeter(distance), y: -(oneMeter * i - 3) })\r\n\t\t\t\t\t.font({ anchor: 'middle', size:'10px' })\r\n\t\t\t\t\t.fill(isTenthLine ? '#666' : '#999');\r\n\r\n\t\t\t\tconst rectSize3 = text3.node.getBBox();\r\n\t\t\t\ttextGroup\r\n\t\t\t\t\t.rect(rectSize3.width, rectSize3.height)\r\n\t\t\t\t\t.transform({ translate: { x: rectSize3.x, y: rectSize3.y }})\r\n\t\t\t\t\t.fill('#e2e7e6')\r\n\t\t\t\t\t.backward();\r\n\r\n\t\t\t\tconst text4 = textGroup\r\n\t\t\t\t\t.text(`${Math.abs((oneMeter * i) * 0.1 / singleUnit).toFixed(0)}m`)\r\n\t\t\t\t\t.attr({ x: getUnitFromMeter(distance), y: oneMeter * i + 2 })\r\n\t\t\t\t\t.font({ anchor: 'middle', size:'10px' })\r\n\t\t\t\t\t.fill(isTenthLine ? '#666' : '#999');\r\n\r\n\t\t\t\tconst rectSize4 = text4.node.getBBox();\r\n\t\t\t\ttextGroup\r\n\t\t\t\t\t.rect(rectSize4.width, rectSize4.height)\r\n\t\t\t\t\t.transform({ translate: { x: rectSize4.x, y: rectSize4.y }})\r\n\t\t\t\t\t.fill('#e2e7e6')\r\n\t\t\t\t\t.backward();\r\n\r\n\t\t\t\tconst text5 = textGroup\r\n\t\t\t\t\t.text(`${Math.abs((oneMeter * i) * 0.1 / singleUnit).toFixed(0)}m`)\r\n\t\t\t\t\t.css('writing-mode', 'tb')\r\n\t\t\t\t\t.attr({ x: oneMeter * i, y: 0 })\r\n\t\t\t\t\t.font({ anchor: 'middle', size:'10px' })\r\n\t\t\t\t\t.fill(isTenthLine ? '#666' : '#999');\r\n\r\n\t\t\t\tconst rectSize5 = text5.node.getBBox();\r\n\t\t\t\ttextGroup\r\n\t\t\t\t\t.rect(rectSize5.width, rectSize5.height)\r\n\t\t\t\t\t.transform({ translate: { x: rectSize5.x, y: rectSize5.y }})\r\n\t\t\t\t\t.fill('#e2e7e6')\r\n\t\t\t\t\t.backward();\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn () => {\r\n\t\t\tgParent.remove();\r\n\t\t};\r\n\t}, [singleUnit]);\r\n\r\n\tuseEffect(() => {\r\n\t\tgRef.current.transform({\r\n\t\t\ttranslateY: -sourceHeight * singleUnit / 0.1\r\n\t\t});\r\n\t}, [singleUnit, sourceHeight]);\r\n\r\n\treturn null;\r\n};\r\n\r\nconst Grid = () => {\r\n\tconst grid = useStore((state) => state.grid);\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{grid === 'grid' && }\r\n\t\t\t{grid === 'distance' && }\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport { Grid };","// @ts-nocheck\r\nimport { useEffect } from 'react';\r\nimport '@svgdotjs/svg.draggable.js';\r\n\r\nimport useStore from '../store/store';\r\nimport './soundTool.css';\r\nimport { Controllers } from './Controllers';\r\nimport Detail from './Detail.js';\r\nimport Multiband from './Multiband';\r\n\r\nimport { Source } from './graph/Source';\r\nimport { Receiver } from './graph/Receiver';\r\nimport { Line } from './graph/Line';\r\nimport { FirstBarrier } from './graph/FirstBarrier';\r\nimport { SecondBarrier } from './graph/SecondBarrier';\r\nimport { BuildingBarrier } from './graph/BuildingBarrier';\r\nimport { Shadows } from './graph/common/Shadows';\r\nimport { Ground } from './graph/Ground';\r\nimport { Grid } from './graph/Grid';\r\nimport { Container, Row, Col } from 'react-grid-system';\r\n\r\nconst ResizableTool = () => {\r\n const { width, height } = useStore(state => state.view);\r\n const setViewBox = useStore(state => state.setViewBox);\r\n const scenario = useStore((state) => state.scenario);\r\n\r\n useEffect(() => {\r\n const onResize = (e) => {\r\n if (window.innerWidth < 600) {\r\n setViewBox(400, 280);\r\n } else if (window.innerWidth >= 600) {\r\n setViewBox(1012, 435);\r\n }\r\n };\r\n onResize();\r\n window.addEventListener('resize', onResize);\r\n return () => {\r\n window.removeEventListener('resize', onResize);\r\n };\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(scenario === 'singleBarrier' || scenario === 'doubleBarrier') && }\r\n {scenario === 'doubleBarrier' && }\r\n {scenario === 'building' && }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst SoundTool = () => {\r\n const sourceHeight = useStore(state => state.sourceHeight);\r\n const receiverHeight = useStore(state => state.receiverHeight);\r\n const barrierHeight = useStore(state => state.barrier1.height);\r\n //Source/Barrier Distance is barrierXpos\r\n const barrierXpos = useStore((state) => state.barrier1.distance);\r\n const distance = useStore((state) => state.distance);\r\n const BarrierToRecieverDistance = distance - barrierXpos;\r\n //sourceHeight = 2;//receiverHeight = 2;//distance = barrierXpos + BarrierToRecieverDistance; //const receiverSPLNoBarrier = 100;\r\n /*\r\n use https://www.excelformulabeautifier.com/ to convert formulas to js\r\n $D$31 = reciever height c48 - source sound power dbA\r\n $D$29 = source height c49 - validity (calculation)\r\n $D$32 = source to barrier distance c50 - barrier attenuation\r\n $D$33 = barrier to receiver distance c51 = Receiever SPL\r\n $D$30 = barrier height c52 - Receiver Noise Level\r\n $D$40 = path difference c46 = ABC Distance\r\n //=SQRT((D30-D29)^2+D32^2) c45 = path difference\r\n\r\n version 2\r\n c48 = Measurement Distance (meters)\r\n c49 = Source Noise ()\r\n */\r\n const pathA1 = Math.pow((barrierHeight - sourceHeight), 2);\r\n\r\n const pathA2 = Math.pow(barrierXpos, 2);\r\n\r\n // console.log({barrierXpos})\r\n // console.log({pathA2})\r\n const pathA = Math.sqrt(pathA1 + pathA2);\r\n const pathB1 = Math.pow((barrierHeight - receiverHeight), 2);\r\n const pathB2 = Math.pow(BarrierToRecieverDistance, 2);\r\n const pathB = Math.sqrt(pathB1 + pathB2);\r\n const pathC = Math.sqrt(Math.pow((receiverHeight - sourceHeight), 2) + Math.pow((Number(barrierXpos) + BarrierToRecieverDistance), 2));\r\n const PathDifference = pathA + pathB - pathC;\r\n\r\n //const sourceSoundPower = 96.8;\r\n //const frequency = 500;\r\n const frequency = useStore((state) => state.frequency);\r\n const setinitialMeasurementDistance = useStore((state) => state.setinitialMeasurementDistance);\r\n const setinitialSoundNoise = useStore((state) => state.setinitialSoundNoise);\r\n const setinitialSourceSoundPower = useStore((state) => state.setinitialSourceSoundPower);\r\n const setinitialFrequency = useStore((state) => state.setinitialFrequency);\r\n\r\n /* Just for initialisation */\r\n // setinitialSourceSoundPower(98.6);\r\n // setinitialSoundNoise(100);\r\n // setinitialMeasurementDistance(10);\r\n\r\n const sourceSoundPower = useStore((state) => state.initialSourceSoundPower);\r\n\r\n let valid = \"Yes\";\r\n\r\n const calcsB2a = 2 * PathDifference;\r\n\r\n const calcsB2b = (frequency / 343);\r\n\r\n const calcsB2c = calcsB2a * calcsB2b;\r\n\r\n let calcsB2 = ((sourceSoundPower === null) ? sourceSoundPower : Math.log10(calcsB2c));\r\n\r\n valid = (\r\n ((receiverHeight - sourceHeight) / (barrierXpos + BarrierToRecieverDistance)) > ((barrierHeight - sourceHeight) / barrierXpos)\r\n ?\r\n \"visible\"\r\n :\r\n (PathDifference === 0 ? \"Grazing\" :\r\n (\r\n (sourceSoundPower === null || sourceSoundPower === 0)\r\n ?\r\n sourceSoundPower\r\n :\r\n (\r\n (calcsB2 >= -3 && calcsB2 <= 3)\r\n ? \"Yes\"\r\n : \"No\"\r\n )\r\n )\r\n )\r\n )\r\n\r\n\r\n\r\n const barrierAttenuation = (\r\n (\r\n (receiverHeight - sourceHeight) / (barrierXpos + BarrierToRecieverDistance)\r\n )\r\n >\r\n (\r\n (barrierHeight - sourceHeight) / barrierXpos\r\n )\r\n ?\r\n 0\r\n :\r\n (PathDifference === 0\r\n ?\r\n 5\r\n :\r\n (\r\n (sourceSoundPower === null || sourceSoundPower === 0)\r\n ?\r\n sourceSoundPower\r\n :\r\n //7\r\n 13.33 + 8.34\r\n * calcsB2 + 2.445\r\n * Math.pow(calcsB2, 2) - 0.8838\r\n * Math.pow(calcsB2, 3) - 0.3012\r\n * Math.pow(calcsB2, 4) + 0.1644\r\n * Math.pow(calcsB2, 5) + 0.01832\r\n * Math.pow(calcsB2, 6) - 0.010024\r\n * Math.pow(calcsB2, 7)\r\n )\r\n )\r\n )\r\n\r\n\r\n\r\n\r\n const receiverSPLNoBarrier = (sourceSoundPower === null ? sourceSoundPower : sourceSoundPower - 20 * Math.log10(distance) - 8);\r\n\r\n\r\n const RecieverNoiseLevel = receiverSPLNoBarrier - barrierAttenuation;\r\n\r\n //const measurementDistance = 10;\r\n //const sourceNoisePower = 100;\r\n\r\n const measurementDistance = useStore((state) => state.initialMeasurementDistance);\r\n const sourceNoisePower = useStore((state) => state.initialSoundNoise);\r\n\r\n const distanceAttenuation = (sourceNoisePower === null || sourceNoisePower === 0) ? sourceNoisePower : 20 * Math.log10(distance / measurementDistance);\r\n\r\n const barrierAttenuation2 = (\r\n (\r\n (receiverHeight - sourceHeight) / (barrierXpos + BarrierToRecieverDistance)\r\n )\r\n >\r\n (\r\n (barrierHeight - sourceHeight) / barrierXpos\r\n )\r\n ?\r\n 0\r\n :\r\n (PathDifference === 0\r\n ?\r\n 5\r\n :\r\n (\r\n (sourceNoisePower === null || sourceNoisePower === 0)\r\n ?\r\n sourceNoisePower\r\n :\r\n //7\r\n 13.33 + 8.34\r\n * calcsB2 + 2.445\r\n * Math.pow(calcsB2, 2) - 0.8838\r\n * Math.pow(calcsB2, 3) - 0.3012\r\n * Math.pow(calcsB2, 4) + 0.1644\r\n * Math.pow(calcsB2, 5) + 0.01832\r\n * Math.pow(calcsB2, 6) - 0.010024\r\n * Math.pow(calcsB2, 7)\r\n )\r\n )\r\n )\r\n const recieverNoiseLevel2 = sourceNoisePower - barrierAttenuation2 - distanceAttenuation;\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport { SoundTool };\r\n","import {SoundTool} from '../components/SoundTool';\r\n\r\nconst Home = () => {\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Home;\r\n","import { ModalContextProvider } from './ModalContext';\r\nimport Home from './pages/Home';\r\n\r\n/* Theme variables */\r\nimport './theme/variables.css';\r\n\r\nconst App = () => (\r\n\t\r\n\t\t\r\n\t\r\n);\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\n\r\nReactDOM.render(\r\n\t\r\n\t\t\r\n\t,\r\n\tdocument.getElementById('root')\r\n);\r\n"],"names":["getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","module","exports","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","s","arguments","length","key","call","ReactPropTypesSecret","require","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","aa","m","r","y","a","b","c","encodeURIComponent","ba","Set","ca","da","ea","add","fa","window","document","createElement","ha","ia","ja","ka","B","d","e","f","g","this","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","type","sanitizeURL","removeEmptyString","D","toLowerCase","oa","pa","toUpperCase","qa","slice","ma","isNaN","na","test","la","removeAttribute","setAttribute","setAttributeNS","replace","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Symbol","for","E","Ma","Ka","iterator","La","Na","stack","trim","match","Oa","Pa","prepareStackTrace","defineProperty","set","Reflect","construct","k","h","displayName","Qa","tag","render","_render","Ra","$$typeof","_context","_payload","_init","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","constructor","get","configurable","enumerable","getValue","setValue","stopTracking","Ua","Wa","checked","value","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","ownerDocument","eb","children","Children","db","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","Array","isArray","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","innerHTML","valueOf","toString","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","style","indexOf","setProperty","charAt","substring","ub","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","push","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","addEventListener","removeEventListener","Rb","l","apply","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","flags","$b","memoizedState","dehydrated","ac","cc","child","sibling","current","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","shift","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","F","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","Math","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","id","bind","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","offset","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","start","selectionStart","end","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","concat","Ze","Yb","instance","listener","G","$e","has","af","bf","random","cf","df","capture","passive","Nb","x","w","z","u","q","t","v","ef","ff","parentWindow","gf","hf","J","K","Q","L","je","char","ke","unshift","jf","kf","lf","mf","autoFocus","nf","__html","of","setTimeout","pf","clearTimeout","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","M","N","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","O","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","defaultProps","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","context","observedBits","next","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","payload","callback","Ag","Bg","Cg","A","p","C","Dg","Eg","Fg","Component","refs","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","contextType","state","updater","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","ref","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","index","Tg","Ug","mode","Vg","implementation","Wg","Xg","done","Yg","Zg","$g","ah","bh","ch","dh","eh","documentElement","tagName","fh","gh","hh","P","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","R","S","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","useState","getSnapshot","subscribe","useEffect","setSnapshot","Oh","Ph","Qh","Rh","create","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","hi","ii","ji","compare","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","size","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","message","Ni","console","error","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","then","mj","nj","ceil","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","min","extend","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","_calculateChangedBits","unstable_observedBits","unmount","querySelectorAll","JSON","stringify","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","version","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","ownKeys","enumerableOnly","filter","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","writable","setConfiguration","getConfiguration","configuration","breakpoints","containerWidths","gutterWidth","gridColumns","defaultScreenClass","maxScreenClass","newConfiguration","_typeof","ScreenClassContext","NO_PROVIDER_FLAG","_react","nodeInterop","__esModule","default","cache","_getRequireWildcardCache","newObj","hasPropertyDescriptor","desc","_interopRequireWildcard","_propTypes","_utils","_config","_primitives","cacheBabelInterop","cacheNodeInterop","_slicedToArray","arr","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","len","arr2","createContext","ScreenClassProvider","_ref","useOwnWidth","fallbackScreenClass","screenClassRef","_useState2","mounted","setMounted","detectedScreenClass","useScreenClass","screenClass","Provider","Div","Fragment","propTypes","_default","_interopRequireDefault","_ScreenClassProvider","ScreenClassResolver","Consumer","screenClassCheck","screenClassResolved","_style","_Row","_ScreenClassResolver","_excluded","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","Col","xs","sm","xl","xxl","pull","debug","component","otherProps","GutterWidthContext","theStyle","forceWidth","moreStyle","getWidth","normalizedWidth","max","widths","_ref$forceWidth","_ref$width","_ref$offset","_ref$pull","_ref$push","styles","boxSizing","minHeight","position","paddingLeft","paddingRight","outline","background","flexBasis","maxWidth","marginLeft","right","screenClasses","currentWidth","isSizedToContent","reduce","acc","cur","Container","fluid","marginRight","Row","align","justify","wrap","nogutter","direction","theGutterWidth","alignItems","justifyContent","flexWrap","flexDirection","includes","_Col","_Container","_Hidden","_Visible","_ScreenClassRender","_Div","_Span","_Window","Hidden","hidden","ScreenClassRender","Visible","visible","getScreenClass","_getConfiguration","newScreenClass","viewport","clientWidth","Window","innerWidth","getViewPort","newScreenClassIndex","maxScreenClassIndex","setScreenClass","handleWindowResized","__self","__source","jsx","jsxs","StrictMode","Profiler","Suspense","setState","forceUpdate","escape","_status","_result","IsSomeRendererActing","count","toArray","only","PureComponent","cloneElement","_currentValue2","_threadCount","createFactory","createRef","forwardRef","isValidElement","lazy","memo","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","floor","port2","port1","onmessage","postMessage","pop","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","_objectSpread2","FixedNumber","Number","parseFloat","toFixed","IntersectionCoordinates","x0","y0","x1","y1","MAX_VALUE","label","onSave","onClose","refNode","modalRef","bodyRect","getBoundingClientRect","rect","svgRect","viewportElement","querySelector","select","onEsc","className","onSubmit","onChange","step","ModalContext","React","ModalContextProvider","open","setOpen","modalProps","setModalProps","openRef","triggerModal","useModal","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_superPropBase","property","_get","receiver","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_setPrototypeOf","_inherits","subClass","superClass","_isNativeReflectConstruct","sham","Proxy","Boolean","_createSuper","Derived","hasNativeReflectConstruct","result","Super","NewTarget","_construct","Parent","args","Class","Function","_wrapNativeSuper","_cache","fn","Wrapper","_toConsumableArray","iter","_createForOfIteratorHelper","allowArrayLike","it","normalCompletion","didErr","_e2","methods","names","registerMethods","addMethodNames","getMethodsFor","il","block","radians","camelCase","unCamelCase","capitalize","proportionalSize","box","getOrigin","origin","ox","oy","condX","condY","svg","html","xmlns","xlink","svgjs","globals","elements","root","ns","makeInstance","isHTML","adopter","wrapper","nodeOrNew","adopt","register","asRoot","did","eid","assignNewId","modules","wrapWithAttrCheck","siblings","parent","prev","forward","backward","front","back","before","after","insertAfter","numberAndUnit","hex","rgb","reference","transforms","whitespace","isHex","isRgb","isBlank","isNumber","isImage","delimiter","isPathLetter","sixDigitHex","componentHex","integer","bounded","space","getParameters","params","_a","_b","_c","hueToRgb","classes","attr","hasClass","addClass","removeClass","toggleClass","css","ret","el","cased","show","hide","remember","memory","forget","_memory","cmyk","Color","hsl","isGrey","delta","init","values","noWhitespace","parseInt","hexParse","components","lab","lch","dToR","yL","xL","zL","ct","mx","nm","rU","gU","bU","pow","toHex","_clamped","toRgb","rV","gV","xyz","rL","gL","bL","xU","yU","zU","round","isColor","PI","sin","grey","clone","Point","transform","transformO","Matrix","closeEnough","threshold","around","aroundO","cx","cy","dx","dy","translateO","decompose","determinant","ccw","sx","thetaRad","theta","st","lam","sy","tx","ty","scaleX","scaleY","shear","rotate","translateX","translateY","originX","originY","equals","other","comp","flip","flipO","axis","scaleO","inverse","inverseO","det","lmultiply","lmultiplyO","matrix","multiply","multiplyO","rotateO","cos","scale","shearO","skew","skewO","lx","ly","skewX","skewY","transformer","isFinite","translate","formatTransforms","flipBoth","flipX","flipY","px","py","relative","rx","ry","fromArray","isMatrixLike","matrixMultiply","parser","path","isNulledBox","addOffset","Box","isNulled","merge","xMin","xMax","yMin","yMax","pts","getBox","getBBoxFn","retry","viewbox","zoomX","zoomY","level","zoomAmount","point","each","fnOrMethodName","reserved","baseFind","List","listenerId","windowEvents","getEvents","getEventTarget","binding","bag","events","ev","off","clearEvents","dispatchEvent","getEventHolder","fire","on","noop","EventTarget","timeline","duration","ease","attrs","fill","stroke","parse","toSet","convert","SVGNumber","divide","unit","minus","plus","times","toJSON","hooks","childNodes","addTo","clear","deep","cloneNode","put","Dom","first","xml","htmlOrFn","outerHTML","matches","matcher","putIn","remove","removeElement","precision","factor","svgOrFn","outerSVG","words","writeDataToDom","xmlOrFn","outerXML","_this","well","fragment","getAttribute","defaults","hook","_val","SVGArray","rebuild","find","query","findOne","center","defs","dmove","move","parents","until","setData","Element","bbox","rbox","inside","screenCTM","ctm","sugar","prefix","extension","mat","radius","_element","pointAt","getPointAtLength","font","leading","untransform","matrixify","str","kv","toParent","pCtm","toRoot","decomposed","flatten","ungroup","Defs","Shape","Ellipse","ellipse","fx","fy","x2","y2","targets","update","Gradient","gradient","pattern","patternUnits","Pattern","load","image","Image","maxX","maxY","minX","minY","points","toLine","PointArray","plot","Line","line","orient","makeSetterGetter","marker","Marker","easing","pos","bezier","steps","stepPosition","jumps","beforeFlag","jumping","stepper","dt","recalculate","_duration","overshoot","_overshoot","os","zeta","wn","velocity","acceleration","newPosition","Spring","windup","PID","segmentParameters","pathHandlers","p0","mlhvqtcsaz","j","jl","segmentComplete","startNewSegment","finalizeNumber","pathLetter","lastCommand","small","isSmall","finalizeSegment","command","makeAbsolut","isArcFlag","isArc","isExponential","pathParser","toAbsolute","token","segment","inNumber","lastToken","inSegment","segments","pointSeen","hasExponent","absolute","arrayToString","getClassForType","morphableTypes","Ease","at","_morphObj","_from","_stepper","curr","_set","_type","_to","TransformBag","sortByKey","splice","objOrArr","entries","Type","num","_array","PathArray","Path","polygon","Polygon","polyline","Polyline","Rect","_first","_last","item","Animator","nextDraw","frames","timeouts","immediates","timer","frame","run","timeout","immediate","cancelFrame","cancelImmediate","_draw","nextTimeout","lastTimeout","nextFrame","lastFrame","nextImmediate","makeSchedule","runnerInfo","runner","defaultSource","timeSource","active","finish","getEndTimeOfTimeline","getEndTime","lastRunnerInfo","lastDuration","endTimes","_runners","getLastRunnerInfo","getRunnerInfoById","_runnerIds","pause","dtOrForever","play","updateTime","reverse","currentSpeed","yes","speed","positive","schedule","absoluteStartTime","endTime","when","info","seek","_time","stop","_continue","unschedule","immediateStep","_stepFn","dtSource","dtTime","_speed","dtToStart","runnersLeft","finished","_timeline","Runner","Controller","enabled","addTransform","animate","clearTransform","clearTransformsFromQueue","_queue","_times","_wait","during","loop","swing","wait","loops","loopDuration","loopsDone","partial","swinging","backwards","uncliped","swingForward","progress","initialiser","initFn","runFn","retarget","isTransform","initialised","reset","running","_lastPosition","justStarted","_lastTime","justFinished","declarative","converged","_run","_initialise","needsIt","_isDeclarative","_rememberMorpher","morpher","caller","allfinished","_tryRetarget","_history","method","sanitise","mergeWith","FakeRunner","getRunnerTransform","mergeTransforms","netTransform","_transformationRunners","runners","clearBefore","deleteCnt","ids","edit","getByID","lastRunner","newRunner","by","_clearTransformRunnersBefore","currentRunner","_currentTransform","_addRunner","_prepareRunner","_frameId","RunnerArray","styleAttr","nameOrAttrs","Morphable","newToAttrs","newKeys","differences","addedFromAttrs","oldFromAttrs","ObjectBag","oldToAttrs","newLevel","newPoint","isMatrix","affine","startTransform","rTarget","rCurrent","possibilities","distances","shortest","affineParameters","currentAngle","newTransforms","_queueNumber","_queueNumberDelta","newTo","_queueObject","isRoot","namespace","removeNamespace","nested","Svg","_build","ax","ay","dom","blankLineOffset","fontSize","firstLine","build","Text","plain","newLine","newLined","Tspan","tspan","Circle","circle","clip","clipper","clipWith","unclip","ClipPath","foreignObject","ForeignObject","group","unlink","linkTo","linker","mask","masker","maskWith","unmask","Mask","Stop","addText","rule","fontFamily","src","selector","cssRule","fontface","Style","pathArray","textPath","importNodes","TextPath","use","file","Use","SVG","registerMorphableType","getCoordsFromEvent","DragHandler","drag","startDrag","endDrag","isMouse","handler","lastClick","eventEnd","currentClick","newBox","createStore","createState","nextState","previousState","getState","api","equalityFn","warn","currentSlice","listenerToAdd","nextSlice","previousSlice","subscribeWithSelector","draggable","enable","dragHandler","useIsomorphicLayoutEffect","navigator","userAgent","useStore","newStateSlice","stateRef","selectorRef","equalityFnRef","erroredRef","currentSliceRef","hasNewStateSlice","stateBeforeSubscriptionRef","nextStateSlice","unsubscribe","sliceToReturn","items","activePanel","activeDBorOctavePanel","initialMeasurementDistance","initialSoundNoise","initialSourceSoundPower","distance","initalDistance","groundHeight","receiverHeight","frequency","sourceHeight","scenario","barrier1","barrier2","grid","showCalculations","setShowCalculations","setDistance","getGroundY","getfirstBarrierInitialPosition","getSoundSourcePosition","getReceiverPosition","getSingleUnit","getUnitFromMeter","setSourceHeight","setReceiverHeight","setViewBox","setBarrierXCoordinate","barrierXCoordinate","firstBarrier","setinitialMeasurementDistance","setinitialSoundNoise","setinitialSourceSoundPower","setinitialFrequency","setScenario","setGrid","setActivePanel","setActiveDBorOctavePanel","setBarrier1","oldState","setBarrier2","setCloseBarrier","setFarBarrier","setBarriers","closeBarrier","farBarrier","closeBarrierKey","farBarrierKey","setGroundDistances","sourceToBarrier","barrierToBarrier","barrierToReceiver","newState","toolTipMessage","isLeft","alt","Controllers","setSelectedOption","currentActivePanel","currentactiveDBorOctavePanel","updatePanel","currentPanel","BarriersDropDown","flexFlow","isToolTipMessage","DisplayDropDown","htmlFor","onGridChange","DBorOctaveDropDown","selectedOption","computedResult","updateDbOrOcatave","NoiseDataButton","title","isActive","toolTip","backgroundColor","border","padding","borderRadius","NoiseData","marginTop","PathDifference","receiverSPLNoBarrier","RecieverNoiseLevel","barrierAttenuation","distanceAttenuation","RecieverNoiseLevel2","barrierHeight","barrierXpos","BarrierToRecieverDistance","sourceSoundPower","measurementDistance","sourceNoisePower","roundValue","class","marginBottom","getBandText","myValue","changeBandNoiseValue","totalSourceNoiseA","receiverNoiseA","totalRecieverNoiseA","bandSetNoise","measuredNoiseNoBarrierSoundPowerTotal","measuredNoiseNoBarrierSoundPower","receiverSPLList","barrierAttenuationList","receiverNoiseLin","totalSourceNoiseDba","barrierScenario","minWidth","bandSets","changeBandValue","totalSourceNoise","totalRecieverNoiceLin","measuredNoiseNoBarrierTotal","measuredNoiseNoBarrier","paddingBottom","resetOctavesValues","rel","calcsB2","initialFrequency","b63","b125","b250","b500","b1000","b2000","b4000","b8000","setBandSets","b63sn","b125sn","b250sn","b500sn","b1000sn","b2000sn","b4000sn","b8000sn","setBandSetNoise","b63dba","b125dba","b250dba","b500dba","b1000dba","b2000dba","b4000dba","b8000dba","log10","measuredDistance","distanceAttenuationMeasured","calculateBarrierAttenuation","band","calcsB2c","GetCalcsB2","calculateRecieverNoiseLin","bandNoise","bandBarrierAtn","bandDistanceAtn","calculateRecieverNoiseA","bandSourceNoise","calculateRecieverNoiseDba","calculateRecieverNoiseWithoutBarriersMeasured","noiseBand","calculateRecieverNoiseWithoutBarrierSoundPower","calculateRecieverSPLNoBarrier","dblin","b63ba","b63rnlin","b63nvnb","b63spnnb","b63splnb","b63sp","b63spdba","b63badba","b125ba","b125rnlin","b125nvnb","b125spnnb","b125splnb","b125sp","b125spdba","b125badba","b250ba","b250rnlin","b250nvnb","b250spnnb","b250splnb","b250sp","b250spdba","b250badba","b500ba","b500rnlin","b500nvnb","b500spnnb","b500splnb","b500sp","b500spdba","b500badba","b1000ba","b1000rnlin","b1000nvnb","b1000spnnb","b1000splnb","b1000sp","b1000spdba","b1000badba","b2000ba","b2000rnlin","b2000nvnb","b2000spnnb","b2000splnb","b2000sp","b2000spdba","b2000badba","b4000ba","b4000rnlin","b4000nvnb","b4000spnnb","b4000splnb","b4000sp","b4000spdba","b4000badba","b8000ba","b8000rnlin","b8000nvnb","b8000spnnb","b8000splnb","b8000sp","b8000spdba","b8000badba","receiverNoiseLevelBandsDba","receiverNoiseLevelSpDba","totalRecieverNoiseNoBarrierDba","addRNLIN","receiverNoiseLevelSpDbaTotal","soundPressureNoBarrier","displayCalcsAndScroll","scrollIntoView","behavior","showCalculationsButtonTitle","MeasuredOctaves","HeightRuler","gRef","textOnLeft","onHeightChange","rulerGroup","lineRef","textRef","arrowRef","anchor","newValue","click","Source","gParentRef","setGParentRef","singleUnit","newHeight","gParent","boxAtDragStart","sourceTextSize","getBBox","abs","newOffset","Receiver","receiverTextSize","barrier2Height","barrier2Distance","dasharray","linecap","barriers","isABarrierAboveSourceReceiver","IsABarrierAboveSourceReceiver","FirstBarrier","gRulerRef","setGRulerRef","barrierRef","draw","textGroup","barrierTextSize","yOffset","xOffset","xOffsetInMeters","SecondBarrier","barrierDistance","BuildingBarrier","textGroupRef","closeBarrierHeightRef","farBarrierHeightRef","closeBarrierDistanceRef","farBarrierDistanceRef","leftCircleRef","rightCircleRef","leftRulerRef","setLeftRulerRef","rightRulerRef","setRightRulerRef","closeBarrierX","closeBarrierY","farBarrierX","farBarrierY","linejoin","buildingTextSize","yOffsetInMeters","closeBarrierNewHeight","farBarrierNewHeight","offsetInMeters","closeBarrierNewDistance","farBarrierNewDistance","leftCircle","rightCircle","smallBarrier","Shadow","polygonRef","Shadows","isFarBarrierUnderCloseBarrier","shadows","FullRuler","groupRef","SourceToBarrierRuler","sourceToFirstBarrierGroup","g1","lineGroup","BarrierToBarrierRuler","barrierToBarrierGroup","g2","lineGroup2","BarrierToReceiver","secondBarrierToReceiverGroup","Ground","viewBoxWidth","CircleGrid","circleGroup","oneMeter","showTextOnlyEvery10","circleStroke","circleColor","isTenthCircle","rectSize1","rectSize2","SquareGrid","linesGroup","lineStroke","lineColor","dashArray","isTenthLine","rectSize3","rectSize4","rectSize5","Grid","ResizableTool","onResize","viewBox","SoundTool","pathA1","pathA2","pathA","sqrt","pathB1","pathB2","recieverNoiseLevel2","ReactDOM","getElementById"],"sourceRoot":""}